Socket.IO в cocos2d не работает, журнал: «Пэр повесил трубку» - PullRequest
0 голосов
/ 07 сентября 2018

Я создал сервер в узле 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] "

Пир повесил трубку?Что это значит?Мой английский плохой, может я чего-то не понимаю.Я даже не знаю, что искать, в чем проблема ...

Пожалуйста, помогите!Я просто хочу, чтобы клиент был подключен к серверу (и в будущем отправлял события с сервера на клиент).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...