根据REST和服务器与客户端事件了解websockets

时间:2015-06-05 02:53:25

标签: asp.net sockets rest websocket signalr

现在我已经在我的项目设计中实现了RESTful API,因为在我的情况下,其他人能够以一致的格式与数据交互非常有用(我发现REST是一个干净的处理请求方式)。我现在不仅尝试将我当前的REST API用于我的资源,而且还能够通过双向websocket连接公开一些信息。

在搜索实现websocket协议的好的.net库时,我确实找到了有关SignalR的信息。我遇到了一些问题(可能特定于我的项目?)

  

我希望能够通过我的初始化Web套接字连接   现有的REST API。 (我不知道这样做的正确做法,但是   我认为自定义标题可以正常工作)我想要它们(   客户端)能够关闭连接并获得http响应   返回(101?)表示完成。

我对SignalR的问题是:

  • 在集线器实例之外没有干净的方法来获取用户的连接ID并将其映射到外部控制器,其中所做的其余调用会影响将哪些数据广播到特定客户端(我不知道& #39;想要使用外部存储器)
  • 对客户端代码的巨大依赖。我真的想让这个过程对客户端来说很简单并处理服务器端的大部分工作(我希望修改我当前的rest api会完成)。我看到客户的唯一责任就是和平分离。

现在问题是..

.net是否有一个好的服务器端websocket库来实现最新的Web套接字协议?客户端可以使用任何符合协议的客户端库。将Web套接字连接和一个安静的api结合起来的最佳做法是什么?

1 个答案:

答案 0 :(得分:0)

ASP.NET supports WebSockets itself如果您有IIS8(仅限Windows 8/2012及更高版本)。 SignalR只是一个polyfill,

如果您没有IIS8,可以使用像我这样的外部WebSocket框架:http://vtortola.github.io/WebSocketListener/

干杯。