我在节点js中创建了一个服务器,客户端应连接到该服务器并存储在数组中:
const io = require("socket.io"),
server = io.listen(8080);
let sequenceNumberByClient = new Map();
server.on("connection", (socket) => {
console.info(`Client connected [id=${socket.id}]`);
sequenceNumberByClient.set(socket, 1);
socket.on("disconnect", () => {
sequenceNumberByClient.delete(socket);
console.info(`Client gone [id=${socket.id}]`);
});
});
我运行该项目(cocos2d,其中有SocketIO类的实现),该项目将是连接到上述服务器的客户端。 连接服务器代码很简单:
////////////////////////////////////
bool OnlineManager::init()
{
m_client = cocos2d::network::SocketIO::getInstance()->connect("http://127.0.0.1:8080", *this);
return true;
}
位置:
cocos2d::network::SIOClient* m_client;
class OnlineManager
: public cocos2d::Layer
, public DelegateSocketIO
位置:
class DelegateSocketIO
: public cocos2d::network::SocketIO::SIODelegate
{
virtual void onClose(cocos2d::network::SIOClient* client) override {};
virtual void onError(cocos2d::network::SIOClient* client, const std::string& data) override {};
virtual void onConnect(cocos2d::network::SIOClient* client) { CCLOG("SIODelegate onConnect fired"); };
virtual void onMessage(cocos2d::network::SIOClient* client, const std::string& data) { CCLOG("SIODelegate onMessage fired with data: %s", data.c_str()); };
virtual void fireEventToScript(cocos2d::network::SIOClient* client, const std::string& eventName, const std::string& data) { CCLOG("SIODelegate event '%s' fired with data: %s", eventName.c_str(), data.c_str()); };
};
在连接时,服务器向我写了以下内容:
“客户端已连接[id = NvyzP5pvZFjazcjAAAAA]”
这时,客户端收到一条错误消息:
(在onSocketCallback方法中,情况为LWS_CALLBACK_CLIENT_CONNECTION_ERROR)
“同行挂断电话”
5秒后,服务器将写入: “客户端消失了[id = NvyzP5pvZFjazcjAAAAA]”
同伴挂了吗?这意味着什么?我的英语不好,也许我听不懂。 我什至不知道要搜索什么,这是什么问题...
请帮忙!我只希望客户端连接到服务器(以后再将事件从服务器发送到客户端)。