Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/135.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用socket.io将应用程序连接到节点服务器 我尝试将一个客户端应用程序(C++编写,虽然不应该有任何影响),它是用Express和Socket .IO ./P>编写的NoDE.js服务器。_C++_Node.js_Express_Socket.io - Fatal编程技术网

使用socket.io将应用程序连接到节点服务器 我尝试将一个客户端应用程序(C++编写,虽然不应该有任何影响),它是用Express和Socket .IO ./P>编写的NoDE.js服务器。

使用socket.io将应用程序连接到节点服务器 我尝试将一个客户端应用程序(C++编写,虽然不应该有任何影响),它是用Express和Socket .IO ./P>编写的NoDE.js服务器。,c++,node.js,express,socket.io,C++,Node.js,Express,Socket.io,服务器基本上可以归结为: 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({ ... })); a

服务器基本上可以归结为:

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);
启动此节点时,我会尝试两件事:

  • 我尝试与浏览器连接。从某种意义上说,它会触发apt.get(“/”…),但不会触发io.sockets.on('connection'),这是意外的,让我怀疑我误解了什么
  • 我启动我的C++应用程序并在TCP套接字上调用连接。套接字连接并允许我发送数据,但我从未得到任何指示,表明节点端发生了什么事情(我也从未得到任何数据)。永远不会触发io.sockets.on('connection'),也不会出现关于格式错误消息的错误 所以我的问题是:我是否误解了sockets.io的设置或功能?如何将应用程序连接到此节点服务器


    谢谢

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

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

    对于本机应用程序,可以尝试使用已实现的

    后者使用Boost



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

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

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

    对于本机应用程序,可以尝试使用已实现的

    后者使用Boost



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

    您的第二个建议与我尝试做的一样。。。但是,老实说,我宁愿不使用boost或任何大型工具(不要误解我的意思,在大多数情况下我喜欢boost)。不可能使用简单的套接字库来建立普通的旧tcp连接并与节点服务器通信吗?如何?应该这样做。主要问题是Socket.io的概念。没有“套接字库”。io使用WebSockets(主协议)并实现AdobeFlashSockets、JSONP轮询和AJAX长轮询。也就是说,您可以使用专用的WebSocket模块(例如,这将是一种干净的方法),也可以使用功能齐全的Socket.io-client框架。然而,如果你喜欢一些非常快速、功能齐全、并且得到广泛平台支持的东西,你应该使用Faye。嘿,我想我的误解在于我认为我可以不使用WebSocket建立一个简单的tcp连接。非常感谢你的帮助。我认为我将继续前进的方式是,让http服务器和网络服务器侦听不同的端口,然后调用相同的函数(它们都需要一些函数集)。。。只是出于好奇,你知道这是不是一种常见的方法吗?你的第二个建议与我想做的一样。。。但是,老实说,我宁愿不使用boost或任何大型工具(不要误解我的意思,在大多数情况下我喜欢boost)。不可能使用简单的套接字库来建立普通的旧tcp连接并与节点服务器通信吗?如何?应该这样做。主要问题是Socket.io的概念。没有“套接字库”。io使用WebSockets(主协议)并实现AdobeFlashSockets、JSONP轮询和AJAX长轮询。也就是说,您可以使用专用的WebSocket模块(例如,这将是一种干净的方法),也可以使用功能齐全的Socket.io-client框架。然而,如果你喜欢一些非常快速、功能齐全、并且得到广泛平台支持的东西,你应该使用Faye。嘿,我想我的误解在于我认为我可以不使用WebSocket建立一个简单的tcp连接。非常感谢你的帮助。我认为我将继续前进的方式是,让http服务器和网络服务器侦听不同的端口,然后调用相同的函数(它们都需要一些函数集)。。。只是出于好奇,你知道这是否是一种常见的方法吗?