【前言】
最近看到很多朋友公司的项目在Web项目中需要用到聊天功能。想起了之前使用过一个微软的SignalR组件。它是一个 ASP.NET 下的类库可以在ASP .NET 的Web项目中实现实时通信。在Web网页与服务器端间建立 Socket 连接,当WebSockets可用时(即浏览器支持Html5)SignalR使用WebSockets,当不支持时SignalR将使用其它技术来保证达到相同效果。
【架构分析】
今天我们来实现服务端消息推送到Web端,首先回顾一下它抽象层次图是这样的:
实际上 Asp.net SignalR 2 实现 服务端消息推送到Web端, 更加简单。 为了获取更好的可伸缩性, 我们引入消息队列, 看如下基本流程图:
消息队列MQ监听, 在Web site 服务端一收到消息,马上通过Signalr 推送广播到客户端。
【效果图】
【具体实现】
创建ASP.NET WEB 引用SignalR相关组件。
具体实现代码,是这样的:
启动类:
消息分组:
消息操作类:
前端代码:
【结语】
本文简单完成了一个在线的Web聊天系统,功能包含登录,好友上线通知、点对点、点对面(群聊)。 IIS 部署亲测,可以适应手机和PC端聊天发送。如果小伙伴儿们关注,后续再继续为大家升级强化!欢迎关注公众号,欢迎讨论,欢迎转发,愿天下有需求的人都能看到!