cocos2d中的Socket.IO无法正常工作,请记录:“同级挂起”

时间:2018-09-06 23:22:59

标签: c++ node.js server socket.io cocos2d-iphone

我在节点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]”

同伴挂了吗?这意味着什么?我的英语不好,也许我听不懂。 我什至不知道要搜索什么,这是什么问题...

请帮忙!我只希望客户端连接到服务器(以后再将事件从服务器发送到客户端)。

0 个答案:

没有答案