Socket.io (Node.js) 未检测到连接的 QTcpSocket

Posted

技术标签:

【中文标题】Socket.io (Node.js) 未检测到连接的 QTcpSocket【英文标题】:Socket.io (Node.js) Doesn't Detect Connected QTcpSocket 【发布时间】:2014-11-11 20:28:29 【问题描述】:

我正在尝试将 QTcpSocket 连接到 Nodejs 应用程序。 C++ QT 代码是:

nodeSocket = new QTcpSocket(this);
nodeSocket->connectToHost("127.0.0.1", 3000);
if (nodeSocket->waitForConnected(3000))

    qDebug() << "Connected!";

Node.js 代码是:

var server = express().listen(3000);
var io = require('socket.io').listen(server);

io.sockets.on('connection', function (socket) 
          console.log('A new client connected! ID: ' + socket.id);
          );

我知道 QT 套接字能够连接并且它通过了连接条件,但它没有通过 javascript 函数中的 io.sockets.on 来指示新客户端已连接。

【问题讨论】:

【参考方案1】:

socket.io 不适用于常规 TCP 套接字。您需要的是内置的net 模块,特别是net.createServer(),它返回一个net.Server 实例,您可以使用它来侦听普通的TCP 连接。

【讨论】:

我宁愿不更改节点代码。我尝试只使用 QWebSocket (qt-project.org/doc/qt-5/…),但它根本无法连接。 socket.io 通常用于连接到服务器的浏览器。你可以使用 websockets,但是你必须有一个 socket.io 协议的实现才能与 websocket 一起使用。

以上是关于Socket.io (Node.js) 未检测到连接的 QTcpSocket的主要内容,如果未能解决你的问题,请参考以下文章

未找到 Socket.io.js(node.js + express + socket.io)

Node.js socket.io.js 未找到或 io 未定义

Node.js - Socket.io:socket.request 未定义

HTTP 状态代码 200 但页面未加载 Node.js Socket.io -- 使用 Socket.io 的 Node.js 教程,Daniel Nill,fs.readFile(),socket

Phaser.js 中的 Node.js 和 Socket.io 未连接 socket.io/?EIO=3&transport=polling

加载socket.io.js时Node.js“未捕获的语法错误:意外的令牌<”