在线游戏最佳实践

时间:2010-07-28 16:39:29

标签: django web-applications client-server

我正在开发基于django的MMO,我想知道什么是服务器 - 客户端通信的最佳方式。我找到的解决方案是:

  • 定期AJAX调用
  • 保持连接活动并通过它发送数据

稍后编辑:

这将包括“你有一条消息”,“用户x攻击你”,“你的x传输已经到达”和类似的东西。它们的数量会增长(类似于1 /秒),但对于典型的用户来说,它们不应达到1 /分钟

3 个答案:

答案 0 :(得分:0)

不确定它是否适用于您正在寻找的内容,但是使用node.js进行简单聊天服务的轻量级服务器 - 客户端通信的实例非常好:

http://chat.nodejs.org/

答案 1 :(得分:0)

您可能需要查看crossbar

  

Crossbar.io是一个允许开发人员使用的开源服务器软件   创建由应用程序组件组成的分布式系统   松散耦合,实时(软)实时通信   以不同语言实施

答案 2 :(得分:-1)

还有第三种涉及“挂起”查询的技术:

  • 客户请求更新的页面(或其他)
  • 服务器没有立即回答
  • 在请求超时之前的某个时间,服务器中有状态更新,服务器最终应答客户端,然后可以更新。
  • 如果在更新期内没有任何新内容告诉客户,那么服务器会在超时之前通过“no news”消息进行响应,并且客户端会启动另一个“挂起”请求。

优点:

  • 客户端不必执行Ajax。您甚至可以将常规HTML页面设置为“交互式”。
  • 可能没有那么多无意义的民意调查流量。

缺点:

  • 服务器需要保持更多活动连接打开,并且每个超时期限至少为其提供一次服务。此外,
  • 取决于服务器代码支持多线程的程度(PHP在那里提供任何帮助吗?),编码可能比AJAX响应处理更困难。