在重定向之前等待服务器响应

时间:2015-11-05 15:35:28

标签: c# asp.net

所以我正在使用C#和asp.net进行自我开发项目。这是一个纸牌游戏,我正在为它写一个配对系统。我想要它的工作原理是你点击“玩游戏”按钮,它会带你到一个新的页面,等待其他玩家加入,然后再将你重定向到游戏页面。所以,理想情况下,你会去等待页面;该页面就像“Hold on”并监听服务器;服务器接受该游戏的另一个玩家,并且对第一个人说“好吧,我们走了”并将两个玩家带到游戏区域。我的问题是如何在重定向之前让客户端等待服务器响应?

1 个答案:

答案 0 :(得分:0)

您可以使用几种不同的方法。

您可以使用javascript's setTimeout在客户端和服务器之间轮询。想法是,当超时发生时,您重定向到匹配页面(或类似),如果有匹配,那么您可以重定向他们加入游戏。如果没有匹配,播放器将被重定向到等待屏幕,再次设置setTimeout。

第二种使用方法是WebSockets。这是一个HTML5标准,允许客户端和服务器之间的直接通信。这里的问题是您需要强制客户端成为使用HTML5的现代浏览器。

微软有一个特定的库可以在没有轮询的情况下处理这种情况,一旦我的大脑重新开始,我会用它更新我的帖子。

由于您使用的是C#,因此您也可以使用SignalR。 SignalR是一个库,允许您的服务器与客户实时通信,无需任何客户端交互。如果WebSockets可用,它会使用WebSockets,如果客户端使用的浏览器没有实现HTML5标准,则会回退到其他技术,例如轮询。