需要一些架构方面的建议。我已经建立了一个国际象棋网站,并希望添加多人游戏功能。我最近在这里问了一个问题,关于url末尾的路径做什么,如:
"ws://<%= Request.Url.Host %>:<%= WebSocketPort %>/sample"
我现在明白了。所以,如果我只需要从服务器向所有登录用户发送消息的功能,那么我就需要处理用户之间的游戏,然后可能还需要一个用于聊天的功能,我会像下面这样吗?var ss = new WebSocket('ws://<%= Request.Url.Host %>:<%= SecureWebSocketPort %>/server');
var gs = new WebSocket('ws://<%= Request.Url.Host %>:<%= SecureWebSocketPort %>/games');
var cs = new WebSocket('ws://<%= Request.Url.Host %>:<%= SecureWebSocketPort %>/chat');
然后在这三个,我可以设置相应的事件。这似乎是可行的,然而,这似乎不是正确的方法。我想我发回的信息可以有关于如何分开东西的信息,但我认为它会过载。
有什么想法,我可能想要分离的功能,如上所述?
您所描述的实际上是同一整个应用程序的不同通道和消息类型。我认为一个更合适(和有效)的解决方案是建立一个单一的WebSocket连接到一个单一的URL,然后定义你自己的消息和会话管理。
如果插座。IO是你的一个选择,关于这类事情有很多例子和食谱。在谷歌上搜索"插座"。IO聊天","Socket。"IO会话","套接字。IO授权"等。套接字。IO wiki可能是一个很好的起点。
即使你不使用Socket。但是,您可能仍然希望使用自己的消息和会话管理进行单个连接。对于这类事情,使用JSON消息可能是可行的方法(因为下棋/聊天的带宽不会成为问题)。大多数语言都有非常简单的JSON序列化/反序列化到本地数据类型。