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

时间:2012-08-30 18:20:03

标签: c++ node.js express socket.io

我正在尝试将使用express和socket.io编写的node.js服务器连接到客户端应用程序(用c ++编写,虽然这不应该有任何影响)。

服务器几乎归结为:

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套接字上调用connect。套接字连接并让我发送数据,但我从来没有得到任何迹象表明节点端发生了什么事(我从来没有得到任何数据)。永远不会触发io.sockets.on('connection'...),并且不会出现有关格式错误消息的错误。
  3. 所以我的问题是:我是否误解了sockets.io的设置或功能?如何将我的应用程序连接到此节点服务器?

    谢谢!

1 个答案:

答案 0 :(得分:1)

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

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

对于本机应用程序,您可以尝试使用已经实现的Socket.IO-modules for C++

后者使用Boost。


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