我是 Node 的新手,我想使用 node.js 在客户端和服务器之间创建一个 TCP 连接。我已经有一个建立在 Node 上的 http 服务器,它向客户端发送/拉取数据。现在,我需要添加这个面向“连接”的概念。
我一直在阅读教程和论坛,但我有点困惑。 如果我理解得很好,有两种创建这种连接的方法:
将我现有的 http 服务器升级到 socket.IO 服务器
var app = require('http').createServer(handler); var io = require('socket.io').listen(app); function handler(req, res){ //code } app.listen(8080);
基于网络模块创建一个单独的 TCP 服务器,然后在此 TCP 服务器和 http 服务器之间建立连接,就像这里建议的那样 Create WebSockets between a TCP server and HTTP server in node.js
var net = require('net'); net.createServer(function (socket) { socket.write('Hello World!\r\n'); socket.end(); }).listen(1337);
那么,我们什么时候需要创建 2 个独立的 TCP 和 HTTP 服务器,什么时候我们只需要一个服务器(将一个 HTTP 服务器升级为一个 socket.IO 服务器)?
最佳答案
WebSockets 与 TCP 连接没有任何关系(除了它们使用它们)。如果您只想打开一个常规的 TCP 连接,内置的 net
包就是您要找的。p>
Socket.IO 是一个 RPC 包,它使用 WebSockets 或模拟 WebSockets 而不是其他传输方式,例如长轮询 JSON。
关于node.js - 在 Node : socket. io 或 net 模块中创建客户端-服务器 TCP 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20527860/