0

在我的多人游戏中,我需要服务器在其他玩家进入游戏时向客户端发送一些数据。为此,我一直认为我需要:

  1. 一个插座
  2. Ajax 每 X 秒请求一次

但现在我正在考虑延迟的ajax。假设客户端询问服务器“玩家进入游戏?” 并且服务器现在没有回复,但它会等待该玩家进入,然后它会响应第一个客户端“是的,玩家 2 进入游戏”。

现在服务器上的资源呢,哪种方法在服务器资源上更轻?

  1. 插座
  2. 延迟的ajax

我认为延迟的 ajax 会保持连接打开,所以它也不是很好,但请告诉我。

谢谢

4

1 回答 1

0
  1. 有一种 Comet 技术,它是“延迟 AJAX”所需的长轮询实现。
  2. 另一种选择是 WebSockets,但它是许多浏览器不支持的一个相当新的功能。
  3. 普通套接字是最简单的方法,只要它们不需要大量流量(伴随着不断的 ajax 轮询),并且可以处理“真正的全双工”。如果延迟是优先考虑的最佳选择。
  4. 如果游戏很大,最好的方法是非阻塞 IO + Reactor 模式,这将允许您在服务器上同时处理数百万个请求。并以类似插座的方式。与3不同,内存消耗少得多。
于 2013-10-22T20:00:43.977 回答