问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

关于Signalr 推送问题求助

发布网友 发布时间:2022-05-10 05:22

我来回答

2个回答

懂视网 时间:2022-04-18 10:55

这篇文章主要为大家详细介绍了SignalR Self Host+MVC等多端消息推送服务的第三篇,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

一、概述

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

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

二、创建web客户端

1、新建一个WebClient解决方案

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

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

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


Install-Package Microsoft.AspNet.SignalR.JS

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


@{
 Layout = null;
}

<h1>流程演示</h1>
<input type="hidden" id="displayname" />
<h2 id="thisname"></h2>

<select id="username" style="width: 100px;">
</select>
<br />
<br />
<input type="text" id="message" />
<input id="send" type="button" value="发送" />
<p>
 <h1 id="messgaeInfo"></h1>
</p>
<script src="~/Scripts/jquery-1.8.2.min.js"></script>
<script src="~/Scripts/jquery.signalR-2.2.1.min.js"></script>
<script src="http://localhost:10086/signalr/hubs"></script>
<script type="text/javascript">
 $(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 + '</br>');
 };

 //后端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("<option value=" + userlist[i].UserName + ">" + userlist[i].UserName + "</option>");
 }
 }
</script>

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

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

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

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

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

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

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

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

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

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

写的不好,第一次写博客,请各位大大多多指教

热心网友 时间:2022-04-18 08:03

如何解决SignalR多台服务器之间信息推送共享用SignalR做了个在线聊天应用,由于多台服务器之间消息推送和通知不能共享。也就是说用户在A地区的服务器发送一条消息,另一用户在B地区的服务器不能收到消息。现在就只一台服务器部署,程序运行一段时间后,在线人数上2k,系统运行速度就下降了。现在怎么解决这个问题,求方案,另外SignalR需要注意哪些性能问题,由于做这个项目时对SignalR不是很熟,也是边学边卖。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
iOS 16.1.1值得更新升级吗 ios16.1.1正式版建议更新吗 iOS 16.1.1修复了哪些问题 ios16.1.1值得更新吗?ios 16.1.1新增内容及更新建议 iPhone 12升级iOS 16.1.1之后好用吗 iOS 16.1.1更新内容介绍 iOS 16.1正式版新增了哪些新功能?iOS 16.1正式版值得升级吗? ios 16.1正式版解决了哪些问题和BUG ...森先生是他“最好的老师” 你喜欢这样的老师吗? ... 你喜欢怀特森这样老师吗?说说你的看法.250字 作文的精彩片段 请给我一些作文的精彩片段 找一些作文的精彩片段,最好是能打动人的片段. 写作文的优美片段有没有 作文精彩片段200字 没加过的QQ群的聊天记录怎么看【现在加上了】 vivo怎么设置精华消息 手机QQ群如何移出精华? 4岁男孩买什么保险好;; 中国从古到今天历程简要500字 qq精华消息怎么查看 我想收废铝请问我该怎么做 收购废铝怎么索要发票 道德与法治之野百合也有春天曹力曹力扮演者是谁 庆祖国100年华诞征文比赛可以用什么作为题记 62墙1平方多少块砖、74墙一平方多少块砖、24空心墙一平方多少块砖 一个平方要多少个空心砖? 37空心墙一平方用多少砖? 爱国从身边小事做起的作文题记 如果写的作文是赞美祖国的,题记应该写什么? signalr 给winform推送消息,怎么接收 C#的网站推送消息系统源代码,有人做过么,或者类似的什么都行! Html5怎么实现消息推送?并且服务端可用C#编写。 mvc controller 怎么和 sigalr hub通信 asp net signalr 有人用吗 迈阿密饮食法有哪些? 迈阿密减肥法?有几种 迈阿密减肥法 有用么 什么是迈阿密减肥法? 梦见日本鬼子 砍断我的双腿 还要杀我好吗 迈阿密食疗减肥方法怎么下载 怎么样才能健康减肥?饮食,运动方面?还有休息?标准是几点睡几点起?早上跑步多长时间?详细跟我i说嘛? 我出远门要钱,做梦梦见有个日本人要杀我是什么意思? 诺特营养中心的诺特创始人——吴向明 每天健身房三个小时加上不吃淀粉。一个月能瘦多少呢 21天减肥法可以连续用吗? 哪些食物可以帮助增加身体的肌肉密度? 好好的手机为什么会自动关机? 世界上最好好的手机 跪求童瑶电视剧大全集,【在线观看】免费百度云资源