我目前有一个用.Net编写的TCP服务器应用程序,用于接收消息并将其提交给客户端。我正在考虑构建Web应用程序,因此需要通信层。
我已经构建了一个Node.JS +Socket.IO应用程序,该应用程序连接到我的TCP服务器,然后将通信推送到Web应用程序,并且一切正常。
我刚刚读过SignalR作为将其保留在.Net堆栈中的替代方法。
但是我也发现我可以编写一个C#WebsocketServer,这里是一个基本演示
我以为这个基本服务器就是SignalR,但是显然其中有很多功能吗?
我要决定的是只将当前的TCP应用程序附加到Websocket服务器,还是关闭单独的SignalR或Node.js路由?出于兴趣,SignalR应用程序是作为Windows服务,控制台应用程序还是IIS服务运行的?
SignalR就像Socket.IO一样,它支持传输协商/回退。它是框架而不是服务器,因此您需要将其托管在某种服务器上。我们拥有用于ASP.NET,OWIN(例如Kayak)和自托管的主机,因此您可以轻松地在自己的进程中运行它,例如Windows服务。
SignalR支持浏览器(JS)、. NET,Windows Phone 7和Silverlight的客户端。也有iOS,Mono Touch等东西的贡献客户。
SignalR将为您提供比原始套接字更高级别的API,这是它的一大优势,它使您能够以广播(或定向)方式从服务器到客户端执行“ RPC”之类的操作。