c++ - 使用 socket.io 将应用程序连接到 Node 服务器

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

我正在尝试将客户端应用程序(用 C++ 编写,尽管这不会产生任何影响)连接到使用 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);

当我启动这个 Node 时,我尝试了两件事:

  1. 我尝试连接浏览器。这在某种意义上是有效的,它会触发 apt.get('/' ...),但它不会触发 io.sockets.on('connection' ...) 这是出乎意料的,让我怀疑我'我误解了什么。
  2. 我启动我的 C++ 应用程序并在 TCP 套接字上调用连接。套接字连接并让我发送数据,但我从来没有得到任何迹象表明 Node 端发生了某些事情(而且我从来没有得到任何数据)。 io.sockets.on('connection' ...) 永远不会触发,也不会出现有关格式错误的消息的错误。

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

谢谢!

最佳答案

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

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

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

后者使用了 Boost。


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

关于c++ - 使用 socket.io 将应用程序连接到 Node 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12203091/

相关文章:

mysql - 使用转义 req.body 值数组的 mysql INSERT 上的 SQL 语法错误

angularjs - 如何在AngularJS中调试“未定义”的 "Cannot read property '模块?

node.js - 如何使用 Node.js Express 执行 Python 函数

javascript - axios 请求有express、node、ejs

C++ 非静态数据成员的无效使用

c++ - 带有外部模板的自定义类型 {fmt} 格式化程序,有什么缺点吗?

c++ - 如何检索回滚驱动程序节点强名称?

C++ 设计(基类中的行为,派生类中提供的私有(private)成员)

javascript - 如何使用 Express 和 Node.js 从表单发送参数

node.js - Mocha,Express 测试错误 - "after all" Hook 错误 - 对象函数没有方法 'close'