在node:socket.io或net模块中创建客户端 - 服务器TCP连接

use*_*220 7 tcp httpserver node.js socket.io

我是节点的新手,我想使用node.js在客户端和服务器之间创建TCP连接.我已经在节点上构建了一个http服务器,它可以向客户端发送数据或从客户端发送数据.现在,我需要添加这种"连接"导向的概念.

我一直在阅读教程和论坛,我有点困惑.如果我理解得很好,有两种方法可以创建这种连接:

那么,我们何时需要创建2个独立的TCP和HTTP服务器,何时需要只有一个服务器(将HTTP服务器升级到socket.IO)?

Bra*_*rad 11

WebSockets与TCP连接没有任何关系(除了它们使用它们之外).如果您只是想打开常规的TCP连接,那么内置net包就是您所需要的.

Socket.IO是一个RPC包,它使用WebSockets或模拟WebSockets而不是其他传输,例如长轮询JSON.


jos*_*736 5

如果您的客户端是浏览器,那么您唯一的选择是使用 WebSockets(socket.io 提供了这样的实现)。

浏览器没有可用于打开原始 TCP 套接字的 API,而这是 net 模块为您提供的。

  • 嗯……不是真的。如果您需要使用原始 TCP 套接字通信,则可以使用“net”。如果您想*在 HTTP 之上*实现双向实时消息传递,您可以使用 socket.io。即使您的客户端不是浏览器,也有针对非浏览器环境的 WebSocket/socket.io 客户端实现。应用程序的正确选择实际上取决于您想要完成的任务、您需要的功能和兼容性类型以及您正在处理的网络类型。 (2认同)