SignalR Self Host+MVC等多端消息推送服务(三)
发布时间 - 2026-01-11 02:05:07 点击率:次一、概述

最近项目确实太忙,而且身体也有点不舒服,慢性咽炎犯了,昨晚睡觉时喘不过气来,一直没休息好,也没什么时间写博客,今天朋友问我什么时候能出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="发送" />
<div>
<h1 id="messgaeInfo"></h1>
</div>
<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等
写的不好,第一次写博客,请各位大大多多指教
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# SignalR
# Self
# Host
# MVC
# 消息推送
# 基于SignalR的消息推送与二维码扫描登录实现代码
# Asp.NET MVC中使用SignalR实现推送功能
# 使用SignalR推送服务在Android的实现 SignalA
# asp.net mvc实现简单的实时消息推送
# ASP.NET实现推送文件到浏览器的方法
# .net平台推送ios消息的实现方法
# .net 通过URL推送POST数据具体实现
# SignalR Self Host+MVC等多端消息推送服务(二)
# SignalR Self Host+MVC等多端消息推送服务(一)
# 发送消息
# 所示
# 用户登录
# 如下图
# 后端
# 新建一个
# 多端
# 目下
# 我会
# 还在
# 也没
# 什么时候
# 问我
# 博客
# 请输入
# 相互之间
# 这个时候
# 实际情况
# 不舒服
# 可以实现
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何自定义建站之星模板颜色并下载新样式?
javascript事件捕获机制【深入分析IE和DOM中的事件模型】
Linux系统命令中tree命令详解
JavaScript常见的五种数组去重的方式
Win11怎么关闭专注助手 Win11关闭免打扰模式设置【操作】
如何快速完成中国万网建站详细流程?
Angular 表单中正确绑定输入值以确保提交与验证正常工作
Java解压缩zip - 解压缩多个文件或文件夹实例
小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?
如何安全更换建站之星模板并保留数据?
Python结构化数据采集_字段抽取解析【教程】
北京网页设计制作网站有哪些,继续教育自动播放怎么设置?
Laravel Blade模板引擎语法_Laravel Blade布局继承用法
如何在云指建站中生成FTP站点?
如何在自有机房高效搭建专业网站?
jQuery 常见小例汇总
Laravel如何正确地在控制器和模型之间分配逻辑_Laravel代码职责分离与架构建议
Laravel的Blade指令怎么自定义_创建你自己的Laravel Blade Directives
Win11怎么查看显卡温度 Win11任务管理器查看GPU温度【技巧】
网站制作企业,网站的banner和导航栏是指什么?
Android自定义控件实现温度旋转按钮效果
Bootstrap CSS布局之列表
Laravel中间件如何使用_Laravel自定义中间件实现权限控制
Laravel如何实现事件和监听器?(Event & Listener实战)
PHP 500报错的快速解决方法
头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?
大型企业网站制作流程,做网站需要注册公司吗?
jimdo怎样用html5做选项卡_jimdo选项卡html5实现与切换效果【指南】
Laravel怎么实现微信登录_Laravel Socialite第三方登录集成
Laravel策略(Policy)如何控制权限_Laravel Gates与Policies实现用户授权
深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?
Laravel如何编写单元测试和功能测试?(PHPUnit示例)
Android中AutoCompleteTextView自动提示
ChatGPT常用指令模板大全 新手快速上手的万能Prompt合集
想要更高端的建设网站,这些原则一定要坚持!
智能起名网站制作软件有哪些,制作logo的软件?
javascript中的try catch异常捕获机制用法分析
网站制作免费,什么网站能看正片电影?
东莞专业网站制作公司有哪些,东莞招聘网站哪个好?
Laravel怎么上传文件_Laravel图片上传及存储配置
javascript如何操作浏览器历史记录_怎样实现无刷新导航
如何用花生壳三步快速搭建专属网站?
javascript基于原型链的继承及call和apply函数用法分析
长沙企业网站制作哪家好,长沙水业集团官方网站?
高端网站建设与定制开发一站式解决方案 中企动力
广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?
如何有效防御Web建站篡改攻击?
Laravel怎么实现验证码(Captcha)功能
微博html5版本怎么弄发超话_超话进入入口及发帖格式要求【教程】
Laravel如何集成Inertia.js与Vue/React?(安装配置)

