Toggle navigation
首页
产品中心
全新RDIF.vNext低代码框架
镇店
.NET C/S开发框架
.NET Web敏捷开发框架
.NET 快速开发框架(全新EasyUI版本)
.NET 代码生成器
.NET WebAPI服务端开发框架
客户案例
付款方式
国思学堂
技术文章
新闻资讯
下载
关于
首页
技术文章
RDIF.NET
正文
原创
2021-02-07
浏览 (
8986
)
通过SignalR技术整合即时通讯(IM)在.NET敏捷开发框架中落地
## 1、引言 ## **即时通讯(IM)**是RDIFramework.NET敏捷开发框架全新提供的一个基于Web的即时通讯、内部聊天沟通的工具。界面美观大方对于框架内部进行消息的沟通非常方便。基于RDIFramework.NET敏捷开发框架的即时通讯IM支持常规的用户对用户(点对点)聊天、工作流程流转的提醒、服务端消息的推送等。消息到达还有类似QQ的声音提醒,同时对消息进行了持久化处理,即时离线的用户,上线后也会收到消息,不会造成消息的丢失。还提供了很多扩展接口供用户实际扩展使用,非常的强大,方便。 通过“企业内部聊天IM”我们可以扩展很多应用出来。这儿特别说明的是我们的IM使用的是SignalR技术。.NET SignalR 是为.NET 开发人员提供的一个库,可以简化开发人员将实时 Web 功能添加到应用程序的过程。实时 Web 功能是指这样一种功能:当所连接的客户端变得可用时服务器代码可以立即向其推送内容,而不是让服务器等待客户端请求新的数据。什么是实时通信的Web呢?就是让客户端(Web页面)和服务器端可以互相通知消息及调用方法,当然这是实时操作的。SignalR提供了非常简单易用的高阶API,使服务器端可以单个或批量调用客户端上的JavaScript函数,并且非常方便地进行连接管理,例如客户端连接到服务器端,或断开连接,客户端分组,以及客户端授权,使用SignalR都非常 容易实现。 ![体系结构关系图](http://doc.rdiframework.net/rdiblog/20210207111343.png) ## 2、什么是SignalR ASP.NET SignalR 是 ASP.NET 开发人员的库,可简化将实时 web 功能添加到应用程序的过程。 实时 web 功能使服务器代码能够在可用时立即将内容推送到连接的客户端,而不是让服务器等待客户端请求新的数据。 SignalR 可用于将任何种类的 "实时" web 功能添加到 ASP.NET 应用程序。 尽管聊天通常用作示例,但你可以执行更多操作。 用户每次刷新网页以查看新数据,或者页面实现 [长轮询](http://en.wikipedia.org/wiki/Push_technology#Long_polling) 来检索新数据时,都是使用 SignalR 的候选项。 示例包括仪表板和监视应用程序、协作应用程序 (例如同步编辑文档) 、作业进度更新和实时窗体。 SignalR 还启用了全新类型的 web 应用程序,这些应用程序需要服务器中的高频率更新,例如,实时游戏。 SignalR 提供了一个简单的 API,用于创建 (RPC) 的服务器到客户端远程过程调用,该程序调用客户端浏览器中的 JavaScript 函数 (和从服务器端 .NET 代码) 的其他客户端平台。 SignalR 还包括用于连接管理的 API (例如,连接和断开连接事件) ,以及对连接进行分组。 ![image-20210207110551451](http://doc.rdiframework.net/rdiblog/20210207111347.png) SignalR 自动处理连接管理,让你可同时向所有连接的客户端广播消息,就像聊天室一样。 也可以向特定客户端发送消息。 客户端和服务器之间的连接是持久的,不同于传统的 HTTP 连接,后者针对每次通信重新建立。 SignalR 支持 "服务器推送" 功能,在该功能中,服务器代码可以使用远程过程调用来调用浏览器中的客户端代码 (RPC) ,而不是目前在 web 上通用的请求-响应模式。 使用内置和第三方横向扩展提供程序,SignalR 应用程序可以向外扩展到数千个客户端。 ## 3、SignalR技术核心 ## SignalR技术主要用途:它出现的主要目的是实现服务器主动推送(Push)消息到客户端页面,这样客户端就不必重新发送请求或使用轮询技术来获取消息。可以用在聊天室、看板、单点通讯、多点通讯,甚至可以结合其他技术用来做视频聊天,当然也有其他用途。 SignalR实现机制:SignalR 的实现机制与 .NET WCF是相似的,都是使用远程代理来实现。在具体使用上,有两种不同目的的接口:PersistentConnection 和 Hubs,其中 PersistentConnection 是实现了长时间的 JavaScript 轮询(类似于 Comet),Hub 是用来解决实时信息交换问题,它是利用 Javascript 动态载入执行方法实现的。SignalR 将整个连接,信息交换过程封装得非常漂亮,客户端与服务器端全部使用 JSON 来交换数据。 基本流程图: ![SignalR基本流程](http://doc.rdiframework.net/blog/article/20190821103916464.png-pw) ## 4、功能展示 ## 即时通讯(IM)包含SignalR服务端,我们内部聊天IM的服务端如下图所示,要使用IM,必须要先启动服务端。 ![image-20210207105259939](http://doc.rdiframework.net/rdiblog/20210207111357.png) 登录框架后在主界面右下解会显示即时通讯(IM)的图标,不占用用户的界面空间。有新信息带来时图标会自动闪烁,同时会有声音提醒非常的方便,类似QQ一样。 ![image-20210207105516303](http://doc.rdiframework.net/rdiblog/20210207111405.png) 单击图标会显示企业内部聊天IM主界面,如下图所示。在IM界面按部门对用户进行了分组的展示。 ![image-20210207105636235](http://doc.rdiframework.net/rdiblog/20210207111411.png) 在线用户会高亮显示,如下图所示。 ![image-20210207105649706](http://doc.rdiframework.net/rdiblog/20210207111416.png) 双击一个用户,即可给指定用户发送信息,聊天界面如下图所示: ![image-20210207105752123](http://doc.rdiframework.net/rdiblog/20210207111420.png) 在上图中,我们给“陈俊熙”发了一条消息,我们现在以”wikstone”陈俊熙用户登录框架,登录成功会自动提示消息,如下图所示: ![image-20210207105923956](http://doc.rdiframework.net/rdiblog/20210207111425.png) ![image-20210207105856196](http://doc.rdiframework.net/rdiblog/20210207111431.png) 在弹出的聊天窗口,我们也可以给发送消息的用户直接回复。 “企业内部聊天IM”不仅可以做为简单的聊天工具,同时在业务协同办公过程中也有很好的支持,如:当用户收到一个待办业务时,IM也会自动进行带声音的提示,如下图所示。 ![image-20210207110214424](http://doc.rdiframework.net/rdiblog/20210207111435.png) ## 5、参考文章 ## - [全新跨平台版本.NET敏捷开发框架-RDIFramework.NET5.0震撼发布](http://www.guosisoft.com/article/detail/241) - [RDIFramework.NET — 基于.NET的快速信息化系统开发框架 — 系列目录](http://www.guosisoft.com/article/detail/190) - [RDIFramework.NET敏捷开发框架 ━ 工作流程组件介绍](http://www.guosisoft.com/article/detail/233) - [RDIFramework.NET敏捷开发框架 ━ 工作流程组件Web业务平台](http://www.guosisoft.com/article/detail/234) - [RDIFramework.NET敏捷开发框架 ━ 工作流程组件WinForm业务平台](http://www.guosisoft.com/article/detail/172) - [微信公众号开发系列-玩转微信开发-目录汇总](http://www.guosisoft.com/article/detail/216) - [.NET Core部署到linux(CentOS)最全解决方案,常规篇](http://www.guosisoft.com/article/detail/244) - [.NET Core部署到linux(CentOS)最全解决方案,进阶篇(Supervisor+Nginx)](http://www.guosisoft.com/article/detail/245) - [.NET Core部署到linux(CentOS)最全解决方案,高阶篇(Docker+Nginx 或 Jexus)](http://www.guosisoft.com/article/detail/246) - [.NET Core部署到linux(CentOS)最全解决方案,入魔篇(使用Docker+Jenkins实现持续集成、自动化部署)](http://www.guosisoft.com/article/detail/248) - [一网打尽,一文讲通虚拟机VirtualBox及Linux使用](http://www.guosisoft.com/article/detail/243) - [一文讲通.NET Core部署到Windows IIS最全解决方案](http://www.guosisoft.com/article/detail/249) - [常用linux命令,开发必备](http://www.guosisoft.com/article/detail/247) ### 5.1、SignalR开发相关 ### - [史上最全面的SignalR系列教程-目录汇总](http://www.guosisoft.com/article/detail/230) - [史上最全面的SignalR系列教程-1、认识SignalR](http://www.guosisoft.com/article/detail/225) - [史上最全面的SignalR系列教程-2、SignalR 实现推送功能-永久连接类实现方式](http://www.guosisoft.com/article/detail/226) - [史上最全面的SignalR系列教程-3、SignalR 实现推送功能-集线器类实现方式](http://www.guosisoft.com/article/detail/227) - [史上最全面的SignalR系列教程-4、SignalR 自托管全解(使用Self-Host)-附各终端详细实例](http://www.guosisoft.com/article/detail/228) - [史上最全面的SignalR系列教程-5、SignalR 实现一对一聊天](http://www.guosisoft.com/article/detail/231) - [史上最全面的SignalR系列教程-6、SignalR 实现聊天室](http://www.guosisoft.com/article/detail/232) - [RDIFramework.NET敏捷开发框架通过SignalR技术整合即时通讯(IM)](http://www.guosisoft.com/article/detail/229) ### 5.2、框架相关 ### - [微信公众号开发系列-玩转微信开发-目录汇总](http://www.guosisoft.com/article/detail/216) - [RDIFramework框架整合微信开发应用效果展示](http://www.guosisoft.com/article/detail/219) - [RDIFramework.NET框架基于Quartz.Net实现任务调度详解及效果展示](http://www.guosisoft.com/article/detail/221) - [RDIFramework.NET — 基于.NET的快速信息化系统开发框架 — 系列目录](http://www.guosisoft.com/article/detail/190) - [RDIFramework.NET ━ .NET快速信息化系统开发框架 ━ 工作流程组件介绍](http://www.guosisoft.com/article/detail/169) - [RDIFramework.NET框架SOA解决方案(集Windows服务、WinForm形式与IIS形式发布)-分布式应用](http://www.guosisoft.com/article/detail/189) - [RDIFramework.NET代码生成器全新V3.5版本发布-重大升级](http://www.guosisoft.com/article/detail/199) ----- 一路走来数个年头,感谢RDIFramework.NET框架的支持者与使用者,大家可以通过下面的地址了解详情。 RDIFramework.NET官方网站:[http://www.rdiframework.net/](http://www.rdiframework.net/) [http://www.guosisoft.com/](http://www.guosisoft.com/) 特别说明,框架相关的技术文章请以官方网站为准,欢迎大家收藏! RDIFramework.NET框架由海南国思软件科技有限公司专业团队长期打造、一直在更新、一直在升级,请放心使用! 欢迎关注RDIFramework.NET框架官方微信公众号(微信号:**guosisoft**),及时了解最新动态。 使用微信扫描二维码立即关注 ![微信二维码](http://doc.rdiframework.net/rdiblog/20210127112204.png)
正文到此结束
本文标签:
消息交互
.NetCore
RDIF.NET
版权声明:
本站原创文章,由
guosisoft.com
发布,遵循
CC 4.0 by-sa
版权协议,转载请附上原文出处链接和本声明。
上一篇
RDIFramework.NET框架通过SignalR技术整合即时通讯(IM)
下一篇
史上最全面的SignalR系列教程-目录汇总
热门推荐
{{article.title}}
热门指数:
浏览({{article.lookCount + 5000}})
相关文章
{{article.title}}
该篇文章的评论功能暂时被站长关闭
说给你听
本文目录
文章标签
RDIF.NET
其他
微信开发
.NET
消息交互
.NetCore
项目管理
常用工具
工作流
Web前端
数据库
挨踢业界
随机文章
一网打尽,一文讲通虚拟机VirtualBox及Linux使用
[推荐]ORACLE PL/SQL编程之五:异常错误处理(知已知彼、百战不殆)
RDIFramework.NET ━ .NET快速信息化系统开发框架 记录所有操作的Sql
信息系统项目管理系列之一:绪论
信息系统项目管理系列之七:项目时间管理
团队项目开发"编码规范"之三:程序注释
微信公众号开发C#系列-6、消息管理-普通消息接受处理
RDIFramework.NET V3.3 Web版新增报表管理功能模块-重量级实用功能
团队项目开发“编码规范”之九:代码分析
.NET快速信息化系统开发框架 V3.2 -> WinForm“组织机构管理”界面组织机构权限管理采用新的界面,操作权限按模块进行展示
信息系统项目管理系列之五:项目整体管理
国思RDIF.vNext全新低代码快速开发框架平台6.1版本发布(支持vue2、vue3)
经典的52条产品交互设计原则
信息系统项目管理系列之二:项目生命期和组织
ORACLE常见问题一千问[101至200](不怕学不成、就怕心不诚!)
.NET Core部署到linux(CentOS)最全解决方案,高阶篇(Docker+Nginx 或 Jexus)
RDIFramework.NET敏捷开发框架 ━ 工作流程组件Web业务平台
Mustache模板技术
SQLServer低版本附加高版本的数据库常用处理方法
RDIFramework.NET开发实例之产品管理(WebForm版)
网站信息
文章总数:599 篇
标签总数:8 个
分类总数:8 个
留言数量:1385 条
在线人数:
89
人
运行天数:1321天
最后更新:2023-05-18
QQ:406590790
13005007127