我们有一个项目有1个服务器和2个客户端
- 服务器(webapi c#-mvc):这是运行在https:domain.com:2020.
- client1: android app
- client2:树莓设备(作为物联网设备)
这两个客户端使用webapi连接到服务器,并通过api调用获取和发布命令并更改数据库中的状态。
问题:客户端必须对服务器进行轮询(实时),以发现数据库中是否有变化以更新其状态。我可以为这个轮询使用什么?我认为套接字是最好的,但我不知道我应该如何在我的webapi中使用套接字,我看到了很多例子,但他们都在控制台应用程序上运行。
我发现了这个示例但我认为它不是完整的代码,我不知道我应该如何在我的webapi控制器中使用它。我是否应该继承它?
thanks in advance:)
有一个库用于这个用例- SignalR,易于使用,它适用于4种传输协议:websocket,永久帧,服务器发送和长轮询。另一种方法是使用本地websocket支持,但在这种情况下,你需要维护websocket的状态(如果你愿意,与任何socket一样)。
SignalR需要客户端库(或者你可以在阅读规范后编写一个),并正式提供c#和JavaScript,你可以找到一些编程语言的库,如java和python,由社区创建。