.net 服务器到";“通知”;另一个用户呼叫时的web服务调用方

.net 服务器到";“通知”;另一个用户呼叫时的web服务调用方,.net,web-services,chat,remoting,notify,.net,Web Services,Chat,Remoting,Notify,我和我哥哥一起做这个纸牌游戏,让我的家人远程玩。有点像窗户里的心。让我们假设它是红心,这样我就不必解释无聊的游戏规则了 将有3名或3名以上的玩家,每个玩家在轮到他们的时候可以在地板上扔一张牌 我有一个数据库和一个类库,其中包含业务逻辑和对数据库的读/写 现在我有几个功能: 新游戏 添加玩家 开始游戏 检查游戏状态=>返回地板上有什么,呼叫者手上有什么牌,每个对手有多少张牌,轮到谁了,谁是主人,等等 移动=>用户通知服务器他希望使用某张卡 我有一个web服务,它使用类库和WebMethods来

我和我哥哥一起做这个纸牌游戏,让我的家人远程玩。有点像窗户里的心。让我们假设它是红心,这样我就不必解释无聊的游戏规则了

将有3名或3名以上的玩家,每个玩家在轮到他们的时候可以在地板上扔一张牌

我有一个数据库和一个类库,其中包含业务逻辑和对数据库的读/写

现在我有几个功能:

  • 新游戏
  • 添加玩家
  • 开始游戏
  • 检查游戏状态=>返回地板上有什么,呼叫者手上有什么牌,每个对手有多少张牌,轮到谁了,谁是主人,等等
  • 移动=>用户通知服务器他希望使用某张卡
我有一个web服务,它使用类库和WebMethods来调用每个函数。网页/独立EXE可以直接使用类库,也可以调用web服务来使用该函数

我正在努力想出一个设计,以“通知”其他用户另一个玩家执行了一个操作。我想到的可能逻辑:

  • 每x秒打一次电话检查游戏状态,看看情况是否正常
  • 使用回调函数异步调用web方法“如果事情发生了变化,请告诉我”。
    • 如果超时怎么办
    • 如果用户在中间离开游戏,那该怎么办?

请帮我解决这个问题。

只要没有太多的客户端,就可以接受轮询服务。此外,每个客户端都可以向WS发送一个“心跳”信号,以指示“是的,我仍在连接”。通过这种方式,您可以检测断开连接的客户端


如果您不想轮询,可以查看推送通知:

WCF双工通道正是为这种情况设计的

如果您正在编写新代码,则不应该使用ASMX服务。您应该改用WCF。在许多其他功能中,WCF支持点对点和通过双工通信信道的通知。回顾过去,这个简单的建议对我帮助很大。