向rest架构添加一些通知

本文关键字:通知 添加 rest | 更新日期: 2023-09-27 18:03:13

我正在使用WebAPI(格式Json填充)开发一个rest Web Service,它是关于玩基于棋盘的游戏,如井字游戏或国际象棋或连接四…我真的希望它是异步的,以便能够轻松地用任何语言创建人工智能。

服务由javascript (jquery)消费,并且在HTML5中使用画布绘制板。现在一切都运行得很好,除了我们必须手动刷新以知道对手是否已经轮到他了,或者发送短信,发送通知的电子邮件。

如何让几个HTML5客户端推送通知基于一个主题(这里是游戏id)?我听说过Web套接字,这是正确的方向吗?

谢谢你的帮助!

向rest架构添加一些通知

不是一个确定的答案,但您可以在javascript中设置一个间隔,使客户端检查来自服务的更新。如果你想每10秒检查一次:

$(function() {
  timer = setInterval( function() {
      $.get(your_url, function(data) {
              // What your client should do with the data
      });
  }), 10000);
});

简短回答:是的,你可以,在这种情况下,WebSocket是你的朋友。

你首先需要一个服务器处理WebSocket协议,并且能够广播一个通知给所有监听一个主题的监听器。

最适合你的将是FastFlicker:它已经带有一个javascript对象,具有清晰的界面,易于使用。参见:

  • https://github.com/Paraintom/FastFlicker
  • https://github.com/Paraintom/FastFlicker/blob/master/JavascriptInterface/FastFlickerChat.js

它的工作原理如下:你先连接,然后你发送的第一条消息是主题,然后所有接下来的广播。您将收到广播给您的主题的所有信息,除了您自己的。

应用程序使用它的一个例子是MikMak本身:http://www.olivettom.com/games/

对于你来说,每次你选择一个新游戏,只需订阅subject=gameId,在玩家移动后发送一个像"1"这样的消息。在收听传入消息时,如果您收到"1",则只需执行rest调用以获得游戏的最后状态。

祝你好运!