ASP.NET SignalR 与 LayIM2.0 配合轻松实现Web聊天室(十) 之 自定义系统消息和总结

摘要:
也就是说,我们定制系统消息。我们需要做的第一件事是重写Layim消息模板。如果我们不更改它,它将成为用户发送的消息。我只是在聊天消息中添加了一个参数系统。我们的前端调用Layim的getMessage接口。第五章描述了添加组和好友的过程。您可以将其添加到代码部分。是否应保存系统消息等。

前言

  本篇主要讲解一个东西,就是我们自定义系统消息。效果如下:

ASP.NET SignalR 与 LayIM2.0 配合轻松实现Web聊天室(十) 之 自定义系统消息和总结第1张

ASP.NET SignalR 与 LayIM2.0 配合轻松实现Web聊天室(十) 之 自定义系统消息和总结第2张

  首先我们要做的准备工作就是改写 layim 的消息模板,如果不改的话就成为某个用户发送的消息了,那么体验就稍微差一些。找到模板我们看一下。

ASP.NET SignalR 与 LayIM2.0 配合轻松实现Web聊天室(十) 之 自定义系统消息和总结第3张

  注意,红框部分是我更改后的,简单读一下可以看出来,我只是给聊天消息加了个参数 system,如果有这个参数,那么我们直接给加一个div就可以了,否则还是显示用户名,消息内容等信息。同样,我们前端调用layim 的getMessage接口,加一个system参数即可。

  ASP.NET SignalR 与 LayIM2.0 配合轻松实现Web聊天室(十) 之 自定义系统消息和总结第4张

  之前加群加好友流程在第五篇已经介绍,今天相当于加一个小业务,我们用QQ都知道,群主或者管理员审核通过之后,群里会有通知 xxx加入群。我们现在少这么一个逻辑,找到代码部分加上即可。

  ASP.NET SignalR 与 LayIM2.0 配合轻松实现Web聊天室(十) 之 自定义系统消息和总结第5张

  之前的推送已经讲过很多了,这里不再赘述,只要前端在多注意一些细节处理就可以了。比如在线用户怎么处理,非在线用户怎么处理,系统消息是否要保存等等。

总结

  本篇比较短一些,确实是没啥内容了,再讲就是更多的业务了,没有什么意义。

  项目从创建到现在快接近一个月了,自己通过研究学习了不少东西。再次感谢园友的支持。

  技术总结:

  1.SignalR中的ConnectionId每次刷新之后都会变动,我们可以通过重写IUserIdProvider的GetUserId方法来实现使用自己系统内的用户ID发送消息。

    2.Layim代码中,通过layim-event绑定事件,通过 prototype 对外公开方法接口

  3.在所有的客户端接收消息中,我只定义了receiveMessage方法,而通过接收到的统一格式的消息体来进行不同业务的处理。

  4.正如我提到过很多次的,只要消息推送稳定,客户端能够随便定义和处理自己的业务逻辑,所以重中之重就是保证SignalR消息推送的稳定性,所以后台的架构设计,消息缓存,异步处理等。(本菜还处在理论阶段。。。)。

  5.系列博客地址,请移步:

   ASP.NET SignalR 与 LayIM2.0 配合轻松实现Web聊天室 实战系列(不断更新中)

  GitHub地址:https://github.com/fanpan26/LayIM_NetClient

  交流群:145322742

免责声明:文章转载自《ASP.NET SignalR 与 LayIM2.0 配合轻松实现Web聊天室(十) 之 自定义系统消息和总结》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇[sybase]自动增长字段创建方法基于VMWare构架Oracle RAC集群数据库下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

使用命令把SpringBoot项目打包成可运行的jar包(简洁,操作性强)

前几天接到一个需求,要把原系统中一个数据处理小功能搬出原系统,拉出来单独做一个SpringBoot项目,然后打成jar包扔到Windows服务器上运行,这样数据处理的时候如果遇到堵塞就不至于整个系统都当掉了,今天正好五一放假第二天,吃过楼下的紫燕百味鸡,正好没啥事写下这篇博客,希望对路过的人有所帮助 话不多说,直接上干货,非常简单,只需要一个命令即可 只需...

Windows内置安全主体

转自:https://blog.csdn.net/xcntime/article/details/51746148 导读:对于Windows内置安全主体特别需要注意的是:你无法创建、重命名和删除它们,并且它们在任何一个Windows系统中都是一样的。 在上期杂志的“理解Windows内置安全主体(上)”一文中,我们初步了解了Windows内置安全主体(它们...

oracle最高账号sys的密码认证模式

CONNECT USERNAME/PASSWORD@SERVERNAME AS SYSDBAconnect 是指连接到username是指用户名password是指密码servername是指服务名as sysdba是指已数据库管理员的身份登录不知道能不能帮到你。 oracle提供的认证模式 1. 操作系统验证(匿名登录 不检验用户名和密码)  conn...

Linux基础常用操作

以下是我听51自学网刘贝斯老师的Linux零基础到精通课程的听课笔记 用户操作 whoami查看当前登入用户 su 切换用户 1.su 用户名 2.su 回车(切换到root) $——普通用户 #——管理员 管理员切换到普通用户不需要密码 useradd(管理员使用)创建用户 xxx passwd xxx给用户xxx设置密码 userdel 删除用户 sh...

linux_redhat9下安装FTP服务器

1 ftp服务器的安装 有几种安装方式: 第一种直接利用rpm安装包一个接一个进行安装。在RedHat-Linux9.0的第三张安装光盘下找到rpm目录(或者是从192.168.4.4老徐利用学校的服务器开设的ftp下载,或者是从互联网上下载),把里面的vsftpd-1.1.3.8.i386.rpm文件复制到文件系统的任意目录下。然后,在vsftpd-1....

更新与发展 | Alibaba Cloud Linux 2 特性与开发细节揭秘

2019 年 4 月,Alibaba Cloud Linux 2 (Aliyun Linux 2) 正式开源。时至今日,已经走过三个月的里程。在这段时间内,这个刚诞生不久的为阿里云 ECS 环境定制优化的 Linux 操作系统发行版的装机量稳步上升。我们经常接到内部和外部的客户咨询 Alibaba Cloud Linux 2 相关的问题,因此本文将重点介绍...