使用socket.io将应用程序连接到节点服务器

我试图连接一个客户端应用程序(用c ++编写,尽pipe不应该有任何影响)到使用express和socket.io编写的node.js服务器。

服务器几乎归结为:

var express = require('express'); var http = require('http') var app = express(); var server = http.createServer(app) var io = require('socket.io').listen(server); app.use(express.cookieParser()); app.use(express.session({ ... })); app.use(app.router); // response handling ------- app.get('/', function(req, res){ console.log('request get /'); }); io.sockets.on('connection', function(socket) { console.log('sockets.io connection!'); }); // ------- port = 3000 app.listen(port); console.log('Listening on port: ' + port); 

当我启动这个节点时,我尝试了两件事情:

  1. 我尝试与浏览器连接。 这个方法的意义在于它会触发apt.get('/'…),但是它不会触发io.sockets.on('connection'…),这是意想不到的,这让我很怀疑,我误解了一些东西。
  2. 我启动我的C ++应用程序,并调用TCP套接字连接。 套接字连接,让我发送数据,但我从来没有得到任何迹象表明事情发生在节点端(我从来没有得到任何数据回来)。 io.sockets.on('connection'…)永远不会被触发,也不会出现错误信息的错误。

所以我的问题是:我误解了sockets.io的设置或function? 如何将我的应用程序连接到此节点服务器?

谢谢!

首先,你是否在客户端包含模块特定的socket.io库? 你连接到正确的sockets/端点?

 io.connect('http://localhost'); 

对于本地应用程序,您可以尝试使用已经实现的用于C ++的Socket.IO模块 。

后者使用Boost。


如果我理解错误,请通过在新的连接试用版上转储内部状态来发布一些debugging信息。