发送大Json时NodeJS socket.IO断开连接

时间:2018-06-27 18:29:20

标签: node.js typescript socket.io large-data

我正在编写带有Nodejs后端和有角度前端的多层纸牌游戏(如炉石传说)。

我试图将两者与Socket.IO连接起来,但事实证明,如果我通过8000char(gameState对象)发送一个JSON对象,那么客户端将保持断开连接并重新连接。

如果我只发送对象的6000个字符的子字符串,一切都很好,但是崩溃超过8000个(我需要约20000个)

我只在localhost中尝试过

这是后端:

    constructor() {
    this.app = express();
    this.port = process.env.PORT || ChatServer.PORT;
    this.server = createServer(this.app);
    this.io = socketIo(this.server);
    this.gameService = new GameService();
    this.listen();
}

listen(): void {
    this.server.listen(this.port, () => {
        console.log('Running server on port %s', this.port);
    });

    this.io.on('connect', (socket: any) => {
        console.log('Connected client on port %s.', this.port);
        socket.on('message', (m: string) => {
            console.log('[server](message): %s', JSON.stringify(m));
            this.io.emit('message', JSON.stringify(this.gameService.getGameState()).substring(1, 6000));
        });

        socket.on('disconnect', () => {
            console.log('Client disconnected');
        });
    });
}

编辑:它与ajax完美兼容,但我需要套接字

0 个答案:

没有答案