我正在编写带有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完美兼容,但我需要套接字