node.js聊天应用程序中服务器端口和websocket端口的差异

node.js聊天应用程序中服务器端口和websocket端口的差异,node.js,express,socket.io,chat,Node.js,Express,Socket.io,Chat,我正在尝试使用socket.io和express在node.js中创建一个多房间聊天应用程序。我对服务器端口和websocket端口的使用感到困惑。我知道客户端使用服务器端口连接到服务器。但不确定websocket端口的使用 感谢和问候..服务器套接字由服务器使用。。。在一个循环中不断侦听即将到来的套接字请求。。。websocket向服务器套接字发送请求并绑定两个设备之间的连接…如果您拥有/想要拥有web客户端,这将是必需的,因为无法从基于浏览器的JavaScript访问“常规”TCP(或UDP

我正在尝试使用socket.io和express在node.js中创建一个多房间聊天应用程序。我对服务器端口和websocket端口的使用感到困惑。我知道客户端使用服务器端口连接到服务器。但不确定websocket端口的使用


感谢和问候..

服务器套接字由服务器使用。。。在一个循环中不断侦听即将到来的套接字请求。。。websocket向服务器套接字发送请求并绑定两个设备之间的连接…

如果您拥有/想要拥有web客户端,这将是必需的,因为无法从基于浏览器的JavaScript访问“常规”TCP(或UDP)套接字(我假设您在2017年不需要Flash、SilverLight或Java小程序)。WebSocket的特殊性不在于端口号,而在于协议:WebSocket连接从常规HTTP连接开始,然后重新配置,它是为浏览器世界设计的,甚至能够遍历HTTP代理。建立连接后,它提供了全双工双向消息流,非常适合聊天应用程序


由于是一个Web设备,如果允许的话,您可以简单地使用端口80。

WebSocket可以与Web服务器共享同一端口,这是一种常见的配置。这之所以有效,是因为webSocket如何建立连接(所有webSocket连接都是通过HTTP请求启动的)。它的工作原理如下:

  • 客户端向web服务器发出HTTP请求,请求头指定要“升级”到webSocket协议,并发送与安全相关的头
  • Web服务器会看到升级请求,如果它启用了对webSocket连接的支持,它将用101请求(交换协议)和另一个与安全相关的头进行响应

  • 客户端获得接受的升级,两端切换到webSocket协议,最初使用HTTP协议的TCP套接字现在使用webSocket协议

  • 通过这种方式,相同的端口和Web服务器可用于常规HTTP请求或webSocket连接请求

    对于聊天应用程序,通常使用webSocket连接,因为它是一种连续连接,更容易让服务器直接向聊天应用程序中经常需要的客户端发送信息


    要了解webSocket连接和服务器如何工作的更多信息,请参阅MDN:上的此参考资料,其中显示了启动webSocket连接的逐步过程。

    @RobinSharma-为什么删除接受的答案?你的问题没有回答吗?如果是这样的话,你还对什么感到困惑?