根据我的场景,我应该选择WebSocket还是XmlHttpRequest,或者两者兼而有之?

根据我的场景,我应该选择WebSocket还是XmlHttpRequest,或者两者兼而有之?,websocket,pubnub,xmlhttprequest-level2,Websocket,Pubnub,Xmlhttprequest Level2,我准备用猴子语言(跨平台翻译)制作一个回合制游戏。游戏将使用HTML5平台。这个游戏将在线进行,玩家可以相互比赛(可以是2vs2比赛)。我最近回顾了大量的解决方案,其中有两个停止了。好的旧XmlHttpRequest和新的WebSocket似乎处于W3C推荐状态,这是相当好的。还有另一项我感兴趣的技术是PubNub,一种推送服务。这项服务实际上将消息推送到所有连接的客户端,速度非常快。。但是这是有代价的,并且在你发送的消息数量上受到限制。我的意思是,1000个连接和100万条消息每月花费你15美

我准备用猴子语言(跨平台翻译)制作一个回合制游戏。游戏将使用HTML5平台。这个游戏将在线进行,玩家可以相互比赛(可以是2vs2比赛)。我最近回顾了大量的解决方案,其中有两个停止了。好的旧XmlHttpRequest和新的WebSocket似乎处于W3C推荐状态,这是相当好的。还有另一项我感兴趣的技术是PubNub,一种推送服务。这项服务实际上将消息推送到所有连接的客户端,速度非常快。。但是这是有代价的,并且在你发送的消息数量上受到限制。我的意思是,1000个连接和100万条消息每月花费你15美元,然后再花费100万条消息+1美元,然后继续。实际上有3个参与者,客户端是用monkey(HTML5)编写的,服务器是用C#编写的,因为我很熟悉广播消息的语言和PubNub。客户端将只向服务器发送请求,而服务器正在将消息中继到PubNub,PubNub反过来将消息发送回客户端。考虑到这些事实,我有两个计划:

  • 这个游戏是用HTML5编写的,但我可以将它移植到其他语言(以Android为例)。如果我使用WebSockets,我就不能这样做,因为我需要额外的库来处理这个问题,我不想在这方面投入更多的时间。因此,我现在将重点介绍HTML5,但移植它始终是一种选择
  • 这是一个基于回合的游戏,所以XmlHttpRequest似乎适合这个任务,但在哪一点上呢?如果我有超过1000个连接发送请求,它能支持吗?每个回合都是一个独特的请求,但聊天信息也是一个请求和私人消息,也可以获取玩家数据(在你加入任何游戏之前)等等。与WebSocket相比,Http Get的优势在于,Http Get易于制作,并且在许多平台上都很容易得到支持,因此如果我选择此选项,显然可以选择Android路线
  • 我不想在其他技术上投入比这里所说的更多的时间
  • PubNub最终是要花钱的,但是它在推送消息方面非常有效,所以不使用它可能会有风险,并且会迫使我自己做消息中继代码
  • 这是我的4个计划

  • 使用WebSockets并使用Alchemy作为C#的WebSocketServer,我对其进行了测试,工作非常出色,并且在后端仍然有PubNub actor用于转发我的消息
  • 使用XmlHttpRequests并为请求网关使用一个简单的WebAPI
  • 两者都去。使客户端独立于选择哪种技术。使用XmlHttpRequest作为回退,并使服务器支持这两种连接。PubNub仍将是这里的接力者,这将使整个东西相互交流
  • 使用WebSocket,但不使用PubNub
  • 那你建议我走哪条路?为什么

    谢谢

    看一看-它是一个类似于PubNub的实时平台,具有更多功能。

    PubNub用于独立游戏和多人在线世界 当你建立一个供人们探索的模拟世界时,网络是很困难的。通常会考虑这些模拟。对于独立游戏开发者来说,PubNub是最好的解决方案。使用PubNub的两个简单功能
    PubNub.publish({…})
    PubNub.subscribe({…})
    ,在独立游戏中启用网络非常简单。在应用程序中添加网络功能可以让您实现多人游戏等!在HTML5浏览器、手机、平板电脑等之间实现实时通知。任何东西都可以从地球上任何地方发送和接收数据

    WebSocket或XMLHttpRequest或两者兼有? PubNub为您做出选择,自动检测适合您的播放器系统和功能的最佳连接类型。这意味着您的独立游戏将在所有平台上正常运行,包括AndroidiPhoneChrome/Firefox/IE等。这使它变得简单,因此您不需要担心到现有各种平台的传输或交付方法。您的团队只需专注于制作一款引人注目、引人入胜的在线多人游戏

    在线独立游戏-服务器逻辑 你需要一种方法来安全地收集玩家的进展,并跟踪你的世界上的行动和后果。您可能还需要跟踪库存和玩家状态。这里有两个很棒的服务

    咆哮引擎 首先,让我推荐RoarEngine,它是一个在线托管的游戏引擎,它为您提供了一个脚本引擎,通过编写您自己的自定义逻辑来释放您无限的创造力。事件、挑战、计时机制,你可以说。RoarEngine还提供物品和礼品经济,通过创建影响玩家状态的物品来塑造玩家互动,由一个功能齐全的商店、货币和礼品系统提供动力,可以动态管理

    作语法分析 我强烈推荐一种在线云托管服务,它可以管理您的用户/玩家会话。当你需要一个更抽象、更不适合游戏的在线平台时,解析是很棒的;它允许您以自己选择的方式定义模型和对象。使用Parse,您不需要专注于构建基础设施,而是可以专注于构建您的游戏世界状态

    PubNub HTML5 MMO XKCD多人游戏 我们想展示HTML5独立游戏与PubNub一起使用的功能,以实现扩展的游戏性,实时加入世界各地的玩家。这个游戏使用HTML5画布,多个用户带着一个气球飞来飞去。如果你被卡住了,你可以点击你的气球家伙,变成一个幽灵,无缝地穿越风景,不受树木和山丘等致命障碍的阻碍。然而,在sh上普通设备上用户的缩放存在问题