【发布时间】:2019-11-26 08:01:17
【问题描述】:
我无法完成这个简单的测试工作。我用 C++ 写给客户端,用 NodeJS 写给服务器,两者都在我的计算机上运行。当我执行客户端应用程序时,控制台会输出此文本……但服务器上永远不会触发事件“key”!
客户端控制台输出:
Error: No active session
[2019-11-21 17:30:11] [connect] Successful connection
[2019-11-21 17:30:11] [connect] WebSocket Connection 127.0.0.1:8081 v-2 "WebSocket++/0.8.1" /socket.io/?EIO=4&transport=websocket&t=1574353811 101
C++ 客户端
#include "pch.h"
#include <iostream>
#include <sio_client.h>
using namespace sio;
using namespace std;
int main()
{
sio::client io;
io.connect("http://127.0.0.1:8081");
string command = "w";
io.socket()->emit("key", command );
}
NodeJS 服务器
'use strict';
const express = require('express');
const app = express();
const serverHttp = require('http').Server(app);
const io = require('socket.io')(serverHttp);
const port = 8081;
io.on('connection', function (socket) {
// Never fired :(
socket.on('key', function (data) {
console.log("key received!!!");
});
});
serverHttp.listen(port, function() {
console.log("init!!!");
});
你能解决这个问题吗,我看到有人在 GitHub 问题部分针对 socket io c++ 客户端提出了同样的问题,目前还没有人回答。请帮忙
【问题讨论】:
-
我认为它们应该连接到同一个端口?
-
抱歉,编辑问题时忘记更改端口。它的同一个端口。 [2019-11-21 17:30:11] [connect] 连接成功,我可以在 c++ 端得到这个消息
-
能否请您在
// Never fired评论前做一个console.log 并检查是否有连接?
标签: c++ node.js sockets websocket socket.io