That means it will listen :1883 and expect MQTT packets and also listen :9001 and expect HTTP/Websocket protocol.
Wire protocol is the language programs speak. Sometimes appropriate talk is "Yo sup TJ", sometimes you should say "Good morning, mr. Marvel". Same thing in server communication. We're still inventing more languages.
- establish TCP connection
- now we're talking MQTT
- send MQTT packets as defined by standard (publish/sub/unsub) or disconnect
- establish TCP connection
- send HTTP request with
Upgrade: websocket
header and other preparation
- except
101 Switching Protocols
response
- now we're talking Websocket, either side can send messages as defined by standard
Port is a number in range 1 to 65535. IP address + port pair define an endpoint of communication. In some sense, port extends IP address space to specify to what program on the other computer you intend to send your data. For example, HTTP servers usually listen port 80.
To make life more interesting, sometimes you pick random port to listen because
- community has not yet reached consensus which one is good for new application
- your network administrator only allows certain ports
- attempt to convince yourself that non-standard port adds security
- well known port is already taken by another application
- just feel like having fun confusing other people