我即将用猴子语言(跨平台翻译)制作一个回合制游戏。游戏将使用 HTML 5 平台。该游戏将在线进行,玩家可以互相比赛(可以是 2vs2 比赛)。我最近审查了大量的解决方案,我停止了其中的 2 个。旧的 XmlHttpRequest 和新的 WebSocket 似乎处于 W3C 的推荐状态,这相当不错。还有另一种我感兴趣的技术是 PubNub,一种推送服务。该服务实际上将消息推送到所有连接的客户端并且速度非常快..但这会在以后产生成本并且受到您发送的消息数量的限制。我的意思是,1000 个连接和 100 万条消息每月花费 15 美元,然后再花费 100 万美元,然后继续。实际上有3个演员,客户端用猴子 (HTML5) 编写,服务器用 C# 编写,因为我非常了解用于广播消息的语言和 PubNub。客户端只会向服务器发送请求,服务器会将消息中继到 PubNub,然后再发送回客户端。考虑到这些事实,我有两个计划:
- 该游戏是用 HTML 5 编写的,但我可以将其移植到其他语言(以 Android 为例)。如果我使用 WebSockets,我就不能这样做,因为我必须获得额外的库来处理这个问题,而且我不想在它上面投入更多的时间。所以我现在将专注于 HTML 5,但移植它始终是一种选择。
- 它是一个回合制游戏,所以是的,XmlHttpRequest 似乎适合这项任务,但在什么时候呢?如果我有超过 1000 个连接发送请求,它能够支持它吗?每个回合都是一个独特的请求,但聊天消息也是一个请求和私人消息,也可以获取玩家数据(在您加入任何游戏之前)等。WebSockets 的一个优势是 Http Get 易于制作并且在许多平台上都易于支持所以如果我选择这个,我显然可以走 Android 路线。
- 我不想在其他技术上投入比这里所说的更多的时间。
- PubNub 最终要花钱,但它对于推送消息非常有效,因此不使用它可能会有风险,并且会迫使我自己做消息中继代码。
所以这是我的4个计划。
- 使用 WebSockets 并使用 Alchemy 作为 C# 的 WebSocketServer,我对其进行了测试并且工作得很好,并且后端仍然有 PubNub 演员来中继我的消息。
- 使用 XmlHttpRequests 并为请求网关使用简单的 WebAPI。
- 两个都去。让客户独立于选择哪种技术。使用 XmlHttpRequest 作为后备并让服务器同时支持这两种连接。PubNub 仍将是这里的中继参与者,它应该使整个东西进行交流。
- 使用 WebSockets 但没有 PubNub。
那么你推荐我走哪条路线,为什么?
谢谢!