如何使用SignalRSelfHost+MVC等多端消息进行推送服务
创始人
2024-11-28 00:01:48
0次

一、概述

最近项目确实太忙,而且身体也有点不舒服,慢性咽炎犯了,昨晚睡觉时喘不过气来,一直没休息好,也没什么时间写博客,今天朋友问我什么时候能出web端的消息发送的文章时,我还在忙着改项目的事,趁着中午吃饭和午休的时间,赶紧补上之前欠下的文章。

这章主要是实现多端消息相互通信的简单demo,mvc的web端发送信息到control端等。

二、创建web客户端

1、新建一个WebClient解决方案

如何使用SignalRSelfHost+MVC等多端消息进行推送服务

2、在WebClient解决方案下新建一个名为Clinet mvc项目

如何使用SignalRSelfHost+MVC等多端消息进行推送服务

3、根据自己实际情况选择对应的项目模板,这里为了做演示,选择Internet应用程序

如何使用SignalRSelfHost+MVC等多端消息进行推送服务

4、在vs中打卡程序包管理器控制台,输入以下代码

Install-Package Microsoft.AspNet.SignalR.JS

如何使用SignalRSelfHost+MVC等多端消息进行推送服务

5、修改项目中Views下Homge文件夹中的Index.cshtml文件代码,如下

@{
  Layout = null;
}

流程演示

  
  $(function () {     $.connection.hub.url = 'http://localhost:10086/signalr';     var work = $.connection.IMHub;        $('#displayname').val(prompt('请输入昵称:', ''));     $('#thisname').text('当前用户:' + $('#displayname').val());     var fromUser = $('#displayname').val();     //对应后端的SendMessage函数,消息接收函数     work.client.receivePrivateMessage = function (user, message) {       //alert(message);       $('#messgaeInfo').append(message + '
');     };     //后端SendLogin调用后,产生的loginUser回调     work.client.onConnected = function (connnectId, userName, OnlineUsers) {       reloadUser(OnlineUsers);     };     //hub连接开启     $.connection.hub.start().done(function () {       var username = $('#displayname').val();       //发送上线信息       work.server.register(username);       //点击按钮,发送消息       $('#send').click(function () {         var friend = $('#username').val();         //调用后端函数,发送指定消息         work.server.sendPrivateMessage(friend, $("#message").val());       });     });   });   //重新加载用户列表   var reloadUser = function (userlist) {     $("#username").empty();     for (i = 0; i < userlist.length; i++) {       $("#username").append("" + userlist[i].UserName + "");     }   }

如何使用SignalRSelfHost+MVC等多端消息进行推送服务

6、在运行我们的web Client项目前,先运行我们前面两章中的serve控制台项目,然后F5运行web Client项目,见如下界面,输入用户名为a的用户登录

如何使用SignalRSelfHost+MVC等多端消息进行推送服务

如何使用SignalRSelfHost+MVC等多端消息进行推送服务

7、然后打开另一个浏览器,如上步骤,输入b用户登录,a用户选择下拉项中的b(下拉选项在有用户登录时会自动添加新用户进去),b用户选择a,相互之间发送一下信息进行测试,结果如下

如何使用SignalRSelfHost+MVC等多端消息进行推送服务

8、如果a、b之间消息传送没问题,证明web端消息传送成功,这个时候打开我们前一章中的Client控制台项目,运行该项目下bin中的Clinet.exe,打卡两个程序,输入登录名为c、b

如何使用SignalRSelfHost+MVC等多端消息进行推送服务

如何使用SignalRSelfHost+MVC等多端消息进行推送服务

9、用c用户给a发送消息hello a,效果如下

如何使用SignalRSelfHost+MVC等多端消息进行推送服务

10、用c用户给b用户发送消息hello b!效果如下,证明control端给web端发送消息成功

如何使用SignalRSelfHost+MVC等多端消息进行推送服务

11、用用户d给用户c发送消息,如下图,证明control端消息发送成功

如何使用SignalRSelfHost+MVC等多端消息进行推送服务

12、用a给c发送消息,如下图所示

如何使用SignalRSelfHost+MVC等多端消息进行推送服务

13、用b给d发送消息,如下图所示,证明web——>control发送消息成功

如何使用SignalRSelfHost+MVC等多端消息进行推送服务

由上所示,证明以SignalR做成owin服务,是可以实现多端通信的,而且SignalR单独做成通信服务可以与其他项目分离、解耦。

后期有时间我会继续优化,集成RabbitMQ等

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...