Sin*_*ton 9 c# silverlight wcf design-patterns polling
我正在进行自我学习的POC,我想让我的用户以LIVE模式连接.例如,一个游戏,其中4个用户可以一次玩,这里我需要让这个用户连接到我的游戏.
我不擅长Socket类型的编程,喜欢在服务方式中做到这一点.我知道的是"这样做的最佳方法是什么".根据我最初的Brain Storming,我已经决定使用SilverLight(在浏览器中或浏览器外)作为前端[我没有问题].
我更关注后端.要么我做一个处理程序或制作WCF服务或使用全双工服务并使用池化机制.作为一个随机的想法,我提出了一个Timer类型的逻辑,它将在客户端结束后每10秒钟触发一次并获得状态
现在轮到掷骰子了
家里有很多用户离开(如果他们中的一些人离开了)
什么是游戏中的连接用户状态,例如得分/分数等,并
根据此结果更新游戏视图
请在这里找到最好的答案,这将有助于我学习这一点.
致敬和提前感谢
编辑:
由于我需要更多反馈,因此开始赏金.
FH
Ram*_*Vel 11
Fasih,
由于HTTP是无状态的,因此您无法通过代码进行双向通信.但如果您使用的是AJAX,则有一种解决方法.正如你所说,计时器是单向的.另一个称为COMET或反向AJAX.
这模拟了双向通信,而不依赖于计时器.要实现此目的,您必须对服务器进行长时间运行的AJAX调用,并且只有在更新发生更改时才会返回调用.假设简单的网络聊天场景.2个用户对服务器进行长时间的AJAX调用,并且两者都轮询公共媒体(比如DB),如果user1发送了一些文本,它将得到更新,用户2正在等待的AJAX调用接收文本并返回.并且两个用户将再次进行长时间通话以互相倾听.
由于您已决定继续使用silverlight,因此您可以使用WCF双工通道来模拟双向通信.正如我之前解释的那样,不要使用计时器逻辑.如果您在服务器上轮询10秒(在10秒内任何事情都可能在游戏中发生),它就不是即时的,如果您每秒轮询一次,它将增加服务器负载.
因此,避免使用计时器逻辑并使用长时间运行的AJAX调
如果您正在寻找WCF双工通道以外的选项,HTML5网络套接字和COMET是其他方法.
查看这篇文章,了解支持web socokets的浏览器.
| 归档时间: |
|
| 查看次数: |
484 次 |
| 最近记录: |