我正在用原始 WebSocket 制作一个小型多人游戏。

我试图找到一种干净的方式来管理 WebSocket 相关事务,于是想到了这个主意:

如果客户端和服务器各自拥有一个状态机作为共享核心代码会怎样?或许某种抽象层能起作用,这样我们可以把高层状态机编写成客户端和服务器都能实现的形式……因为当 API 接口变多之后,手动追踪所有这些连接线会很痛苦。

只是好奇,你通常最终会采用什么方案?

CLIENT -> server

@ is SERVER -> CLIENT

生命周期

ping

@ping

大厅

join

@joined, <uid:string>

rejoin, <uid:string>

@joined, <uid:string>

匹配中

match //寻找匹配

@matching //你正在匹配中

matchend //取消匹配

@matchend //匹配因某种原因结束

@matched//你已匹配成功

其他

@info, <message:string>

@error, <message:string>