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

标签 node.js tcp socket.io httpserver

我是 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 包就是您要找的。

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

关于node.js - 在 Node : socket. io 或 net 模块中创建客户端-服务器 TCP 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20527860/

相关文章:

javascript - 如何通过离开页面处理客户端断开的socket.io?

javascript - "migration:create"和 "migration:generate"之间有什么区别?

javascript - 使用 Promises 处理来自 ssh2 的成功/错误响应

Java Tcp Socket 管理数据包重传

.net - 发起TCP连接关闭后如何接收数据?

python - 使用 Web 套接字和 Gunicorn 运行 Flask 应用程序时出错

javascript - 咕噜声 : Loading dependencies takes several minutes

javascript - module.exports 不会导出带有函数的对象

c - 使用 lwIP 的原始 TCP API 时的性能问题

php - 每当数据库更新时,socket.io 都会推送数据