• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >ASP.NET > SignalR Self Host+MVC等多端消息推送服务(三)

SignalR Self Host+MVC等多端消息推送服务(三)

作者:landonzeng 字体:[增加 减小] 来源:互联网 时间:2018-08-20

landonzeng 通过本文主要向大家介绍了SignalR,Self,Host,MVC,消息推送等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

一、概述

最近项目确实太忙,而且身体也有点不舒服,慢性咽炎犯了,昨晚睡觉时喘不过气来,一直没休息好,也没什么时间写博客,今天朋友问我什么时候能出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等

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • SignalR发送页面跳转通知的方法
  • 详解在ASP.NET Core下使用SignalR技术
  • Asp.net SignalR 让实时通讯变得如此简单
  • ASP.NET MVC中SignalR的简单应用
  • SignalR Self Host+MVC等多端消息推送服务(三)
  • SignalR Self Host+MVC等多端消息推送服务(二)
  • SignalR Self Host+MVC等多端消息推送服务(一)
  • Asp.net MVC SignalR来做实时Web聊天实例代码

相关文章

  • 2017-05-11mvc file控件无刷新异步上传操作源码
  • 2017-05-11详解ASP.NET提取多层嵌套json数据的方法
  • 2017-05-11asp.net 网页编码自动识别代码
  • 2017-05-11Asp.Net MVC中配置Serilog的方法
  • 2017-05-11ASP.NET MVC传送参数至服务端详解及实例
  • 2017-05-11.NET 资源文件resx、Resources详细说明
  • 2017-05-11一个合格的程序员应该读过哪些书(偏java)
  • 2017-05-11ASP.NET缓存处理类实例
  • 2017-05-11asp.net 点击按钮提交后使按钮变灰不可用
  • 2017-05-11C#调用动态unlha32.dll解压Lha后缀的打包文件分享

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • .Net 垃圾回收机制详细介绍
    • 在ASP.NET 2.0中操作数据之六:编程设置ObjectDataSource的参数值
    • ASP.NET WebForm中<%=%>与<%#%>的区别
    • datagrid绑定list没有数据 表头不显示的解决方法
    • [c#]asp.ent下开发中Tag的开发技巧
    • 在ASP.NET 2.0中操作数据之四十:自定义DataList编辑界面
    • asp.net 动态表单之数据分页
    • ASP.net(c#)生成条形码 code39条码生成方法
    • .Net 垃圾回收机制详细介绍
    • asp.net编程实现删除文件夹及文件夹下文件的方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有