手机版企业网站,静态页面网站站标代码写进到静态页面了 怎么不显示呢?,h5个人网页制作,石家庄城市建设投资中心网站前言 今天给大家推荐一个.NET Core WebSocket实现简易、高性能、集群即时通讯组件#xff1a;FreeIM。 官方组件介绍 FreeIM 使用 WebSocket 协议实现简易、高性能#xff08;单机支持5万连接#xff09;、集群即时通讯组件#xff0c;支持点对点通讯、群聊通讯、上线下线事… 前言 今天给大家推荐一个.NET Core WebSocket实现简易、高性能、集群即时通讯组件FreeIM。 官方组件介绍 FreeIM 使用 WebSocket 协议实现简易、高性能单机支持5万连接、集群即时通讯组件支持点对点通讯、群聊通讯、上线下线事件消息等众多实用性功能。 WebSocket介绍 WebSocket是一种在Web应用程序和服务器之间建立持久连接的通信协议。它通过在客户端和服务器之间创建一个全双工通信通道实现了服务器主动向客户端推送数据的功能。 相比起传统的HTTP请求-响应模式WebSocket具有以下几个优势 实时性WebSocket提供了实时的双向通信服务器可以主动推送数据给客户端而不需要客户端发起请求。这使得实时通信应用如聊天室、股票行情等变得更加简单和高效。减少数据传输量WebSocket在建立连接时需要进行握手之后数据帧的开销较小只需要发送少量的控制信息因此相比于HTTP请求的头部信息可以减少数据传输的开销。低延迟由于WebSocket是一个长连接避免了每次请求都要建立TCP连接的开销从而降低了延迟。节省服务器资源WebSocket使用一个TCP连接进行全双工通信相比于传统的HTTP请求避免了频繁的连接和关闭操作减少了服务器的负担。支持跨域通信WebSocket允许在浏览器中通过JavaScript与不同域名下的服务器进行通信实现了跨域通信的功能。 项目源码截图 设计思路 终端如浏览器/小程序/iOS/android 统一使用 websocket 连接 ImServer ImServer支持集群根据 clientId 分区管理 websocket 连接 WebApi 使用 ImHelper 调用方法如SendMessage、群聊相关方法将数据推至 Redis chan ImServer 订阅 Redis chan收到消息后向 终端 推送消息 缓解了并发推送消息过多的问题解决了连接数过多的问题解耦了业务和通讯架构更加清淅 ImServer 充当消息转发连接维护代码万年不变、且不需要重启维护WebApi 负责所有业务 ImServer 服务端 public void Configure(IApplicationBuilder app)
{app.UseFreeImServer(new ImServerOptions{Redis new FreeRedis.RedisClient(127.0.0.1:6379,poolsize5),Servers new[] { 127.0.0.1:6001 }, //集群配置Server 127.0.0.1:6001});
} WebApi 业务端 public void Configure(IApplicationBuilder app)
{//...ImHelper.Initialization(new ImClientOptions{Redis new FreeRedis.RedisClient(127.0.0.1:6379,poolsize5),Servers new[] { 127.0.0.1:6001 }});ImHelper.EventBus(t Console.WriteLine(t.clientId 上线了), t Console.WriteLine(t.clientId 下线了));
} Html5 终端 终端连接 websocket 前应该先请求 WebApi 获得授权过的地址(ImHelper.PrevConnectServer)伪代码 ajax(/prev-connect-imserver, function(data) {var url data; //此时的值ws://127.0.0.1:6001/ws?tokenxxxxxvar sock new WebSocket(url);sock.onmessage function (e) {//...};
}) 项目源码 更多实用功能特性欢迎前往开源地址查看别忘了给项目一个Star。 https://github.com/2881099/FreeIM 优秀项目和框架精选 该项目已收录到C#/.NET/.NET Core优秀项目和框架精选中关注优秀项目和框架精选能让你及时了解C#、.NET和.NET Core领域的最新动态和最佳实践提高开发效率和质量。坑已挖欢迎大家踊跃提交PR自荐让优秀的项目和框架不被埋没。 https://github.com/YSGStudyHards/DotNetGuide/blob/main/docs/DotNet/DotNetProjectPicks.md See you next good day