2017-06-21 43 views
0

我刚开始学习websocket,所以如果我说的话没有意义,那可能就是为什么。我了解他们如何工作的基本知识。客户端可以向服务器发送消息,反之亦然。我的问题是,如果你想让客户端能够使用相同的连接用于不同的目的。例如,如果客户可以发送消息或在游戏中移动他们的角色会发生什么。你需要单独的套接字来处理这些情况吗?我想你可以为你的消息创建一个标准,然后在服务器上有一个switch语句,但是这看起来不够好。如果有关系,我正在使用Node的服务器“express-ws”包。谢谢您的帮助!用于多种用途的Websocket连接

回答

0

你的直觉是正确的。通常你会构造一个标准的消息格式,它具有一个指示消息类型的属性。

您不必在服务器上使用switch语句。如果你愿意,你可以创建一个eventEmitter,并将每个传入消息创建为与消息类型相同的eventName。然后,你的服务器代码只会注册监听器,听听他想听的任何消息,并且你会避免使用switch语句。这也可以让你的服务器代码在模块中更加划分。您只需分享eventEmitter,即任何希望侦听传入消息或发送传出消息的模块。

仅供参考,socket.io是一个位于webSocket之上的客户端和服务器层,并为您执行所有这些(以及其他一些功能)。有一部分socket.io的功能在这里:Moving from socket.io to raw websockets?