comet 随想
以前编写过一个Android跳棋对战的程序,
服务器端用的 RESTfull, 有game, user, room 等这些resources
客户端是不断轮询resources,而后不断对比,得知游戏状态的变化,当时时间有限,也就没有探索更好的方法
有一天跟一个资深同事说了这事,他说:你就长连接去等就行了。
对呀,状态变化我再给 client 回消息,这节约了cpu, 但服务器端就要做更多的工作
1)请求来的时候,我要hold住
2)等另一玩家完成了,再给hold住的玩家回消息
最近阅读了一篇文章也说的是这个道理
http://blog.csdn.net/shanliangliuxing/article/details/7755300
要让client知道 server 的变化
1)可以轮询 (comet的一种方式)
2)可以用长连接,并在server 端做手脚(comet 的另一种方式)
随着 html5的成熟, websocket 将取代 comet 了,我猜想其实现方式
是否它要在client端开一个监听端口,这样就可以实现多对多的双向通行
待研究中...