Node.Js + Socket.IO vs SignalR vs C# WebSocket 服务器

目前我有服务器应用程序 TCP, 写道 .Net, 它收到并向客户发送消息。 我看一下Web应用程序的创建,所以我需要一个通信级别。

我建了附件 Node.JS + Socket.IO, 连接到我的服务器 TCP, 然后向Web应用程序发送消息,一切都正常工作。

我刚刚读到了 SignalR 作为保持堆栈中的替代方案 .Net.

但是,我也发现我可以编写一个服务器 C# Websocket, 基本示范
https://coderoad.ru/2211898/
我假设这个基本服务器是什么 SignalR, 但显然,功能更大的功能?

我想要决定的是添加我当前的应用程序 TCP 到服务器 Websocket 或者继续单独的路线 SignalR 或者 Node.js? 兴趣申请如何运作 SignalR, 是服务吗? Windows, 控制台应用程序或服务 IIS?
已邀请:

小姐请别说爱

赞同来自:

SignalR 看起来像 Socket.IO 在那他支持运输 negotiation/fallback. 这是一个框架,而不是服务器,所以你需要将它放在一些服务器上。 我们有主机 ASP.NET, OWIN /例如, Kayak/ 和 self-host, 因此,您可以在自己的过程中轻松运行它,例如服务 Windows.

SignalR 支持浏览器的客户端 /JS/, .NET, Windows Phone 7 和 Silverlight. 还有客户为喜欢的东西制作 iOS, Mono Touch 等等。

SignalR 会给你一个更高的水平 API, 而不是未经处理的插座,这是它的大优势,允许您尽可能地做 "RPC", 从服务器到广播的客户 /或目标/ 方式。

三叔

赞同来自:

其他后果

我使用了两种技术,并在堆栈的两侧工作。 .NET / node.

虽然今天我喜欢赤裸的一侧,如果你只工作 .NET, SignalR是一个明显的选择。 反之亦然,如果你建造所有项目 node, 我会选 socket.io 或者
https://github.com/sockjs
. 如果您的区域非常狭窄,因此您不需要担心储备等,我建议检查模块
https://www.npmjs.com/package/ws
, 由于它更容易且更容易取决于您的依赖关系。 过去 socket.io 是一个问题 Windows 由于安装问题 node-gyp, 无法建立自己的依赖项 /
https://github.com/nodejs/node-gyp
需要许多步骤设置,根据哪个版本变差 Windows 你有,但需要 C++ native built modules/.

更新

这一点 Windows 没有那么相关的谢谢
https://www.npmjs.com/package/windows-build-tools
.

如果您有负载平衡,并且您计划运行 SignalR, 您需要配置 SQL 或者 Redis 作为背板,以绕过负载平衡。 你会在旁边有类似的问题。 socket.io, 并且存在[几种支持的方法] [1] /1 其中也是如此 redis/.

更新删除的信息 jquery, 因为它不再适用

君笑尘

赞同来自:

可扩展的开发 / 线程安全服务器 TCP 可能是一项艰巨的任务。 另一方面,在互联网上有很好的资源,以启动自己的资源。 例如,如果您只是在寻找一些良好的开源项目 WebSocket, 我的建议将是以下内容 ;

https://github.com/Olivine-Labs/Alchemy-Websockets
: 开源库 C# WebSocket

https://github.com/statianzo/Fleck
: 开源库 C# WebSocket

SignalR 可能是好的,但他需要 Windows 服务器 8 / IIS 8, 提供一个功能 WebSocket.

至于商业产品,特别是考虑到该功能 websocket 在所有浏览器中不可用,我推荐图书馆 PokeIn WebSocket 和 reverse Ajax. 从版本开始 2.0, 它有一个内置的服务器 WebSocket. 可提供详细信息
http://www.pokein.com/Help/WebSocketFeature.aspx

要回复问题请先登录注册