C#中Websocket库的选择

WebSocket是HTML5标准中的一部分,可以单TCP连接上进行全双工通讯协议。服务端可以主动给客户端推送数据,使整个通讯更快的快捷、方便。

本次介绍2个比较推荐的库

Signalr与SuperWebsocket,其他像基于TCP协议自己封装,现在选择这个方式的已经非常稀少了,可能在某些特殊场景或对性能有需求的项目中能看到。

一、.NET自带的Signalr

系统:Windows、Linux

兼容了4种通讯方式

1.WebSocket协议

2.Forever Frame:永久帧 在页面中增加一个iframe利用这个html框架与服务器进行交互。

3.Sever Sent Events:用于浏览器端,向服务器发送事件通讯。

4. Long Polling:长轮询,这个是对轮询的改进,客户端请求连接到服务器,服务端不返回数据并保持一段时间的连接状态,直到消息更新或超时才返回Response并中止连接,可以有效减少无效请求的次数。

自带的有两种模式:永久连接模式(PresistentConnection)和中心模式(Hubs)。推荐使用Hubs模式,如有需要也可以使用永久连接模式这个更偏向底层需要自己开发更多的功能。

另外.NET Core中的Signalr相对于此前版本做了升级与增强且可跨平台运行。

二、SuperWebsocket库

系统:Windows、Linux(基于Mono)

SuperWebSocket 是一个基于SuperSocket开发的WebSocket服务器轻量级、高性能,相对于Signalr对服务器版本没有过多的要求。目前已经做为一个模块加入了SuperSocket库。

这个只有Websocket协议,适合于做C/S应用,用于Web项目的话就不要再考虑兼容旧浏览器了。

总结:

这两个库性能都不错,根据自己的项目需求进行选择。

如果做的是Web类的项目,使用.NET自带的Signalr库会更方便些,常用到长轮询和WebSocket方式进行通信,如类似于微信的扫码登录。

如果做的是C/S类的应用,如桌面程序、手机应用只使用WebSocket的话推荐使用SuperWebsocket库。

两个库都适用于B/S和C/S项目,只是兼容的协议不同,示例和应用都比较多。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

polsnet

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值