Django 在线游戏最佳实践
我正在开发一个基于django的MMO,我想知道服务器-客户端通信的最佳方式是什么。我找到的解决办法是:Django 在线游戏最佳实践,django,web-applications,client-server,Django,Web Applications,Client Server,我正在开发一个基于django的MMO,我想知道服务器-客户端通信的最佳方式是什么。我找到的解决办法是: 定期AJAX调用 保持连接活动并通过它发送数据 以后编辑: 这将包括“你有一条消息”、“用户x攻击了你”、“你到x的传输已经到达”等等。它们的数量可能会增加(大约1/秒),但对于一个典型的用户来说,它们不应该达到1/分钟还有第三种技术涉及“挂起”查询: 客户端请求更新页面(或其他内容) 服务器没有立即应答 在请求超时之前的某个时候,服务器中会有一个状态更新,服务器最终会回答客户机,然后
- 定期AJAX调用
- 保持连接活动并通过它发送数据
这将包括“你有一条消息”、“用户x攻击了你”、“你到x的传输已经到达”等等。它们的数量可能会增加(大约1/秒),但对于一个典型的用户来说,它们不应该达到1/分钟还有第三种技术涉及“挂起”查询:
- 客户端请求更新页面(或其他内容)
- 服务器没有立即应答
- 在请求超时之前的某个时候,服务器中会有一个状态更新,服务器最终会回答客户机,然后客户机可以进行更新
- 如果在更新期内没有什么新的消息要告诉客户机,那么服务器会在超时之前以“no news”消息作出响应,客户机会启动另一个“挂起”请求
- 客户端不必做Ajax。您甚至可以像这样使常规HTML页面“交互式”
- 可能没有那么多毫无意义的投票流量
- 服务器需要保持更多活动连接处于打开状态,并在每个超时期间至少为它们提供一次服务。而且
- 根据服务器代码对多线程的支持程度(PHP是否提供了帮助?),编写代码可能比AJAX响应处理更困难
您可能想看看 Crossbar.io是一种开源服务器软件,允许开发人员 创建由应用程序组件组成的分布式系统 它们是松散耦合的,以(软)实时方式通信,并且可以 用不同的语言实现
在不了解MMO游戏需求的情况下,我们无法帮助您说出最佳实践。事件在客户端显示前所需的时间是多少,您有多少个事件/时间?