• 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 > Asp.net SignalR 应用并实现群聊功能 开源代码

Asp.net SignalR 应用并实现群聊功能 开源代码

作者:Emrys5的博客 字体:[增加 减小] 来源:互联网 时间:2017-07-22

Emrys5的博客通过本文主要向大家介绍了下载asp.net源代码,源代码 asp.net,asp.net,asp net培训,asp和asp.net的区别等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

ASP.NET SignalR 是为 ASP.NET 开发人员提供的一个库,可以简化开发人员将实时 Web 功能添加到应用程序的过程。实时 Web 功能是指这样一种功能:当所连接的客户端变得可用时服务器代码可以立即向其推送内容,而不是让服务器等待客户端请求新的数据。(来自官方介绍。)

SignalR官网

 -1、写这篇的原因

在上篇文章B/S(Web)实时通讯解决方案中,并没有详情介绍SignalR,所以另起一篇专门介绍SignalR,本文的侧重点是Hub功能。

 

0、先看最终实现效果

github:https://github.com/Emrys5/SignalRGroupChatDemo

在线演示:http://chat.lining.name/

 

1、准备工作

1.1、在NuGet上首先下载SignalR的包。

 

1.2、配置Owin与SignalR

1.2.1、新建Startup类,注册SignalR

1 public class Startup
2     {
3         public void Configuration(IAppBuilder app)
4         {
5             app.MapSignalR();
6         }
7     }
</div>

然后在web.config配置Startup类,在configuration=>appSettings节点中添加

<add key="owin:AppStartup" value="SignalRChat.App_Start.Startup"/>

 

1.2.2、在页面引入SignalR的js

1、由于SignalR前端是基于jQuery的,所以页面需引入jQuery。

2、引入SignalR的js 。

3、引入最重要的hubs js,这个js其实并不存在,SignalR会反射获取所有供客户端调用的方法放入hubs js中。

<script src="~/Scripts/jquery-1.10.2.js"></script>
<script src="~/Scripts/jquery.signalR-2.2.1.min.js"></script> 
<script src="~/signalr/hubs"></script>
</div>

 

1.2.3、新建GroupChatHub类,并继承Hub抽象类

在hub类中的方法就是提供给客户端调用的js方法。

在js中就可以用signalr调用SendMsg。

[HubName("simpleHub")]
    public class SimpleHub : Hub
    { 
        public void SendMsg(string msg)
        {
             
        }

    }
</div>

 这样基本上前期准备工作就做完了,后面就是具体的操作。

 

2、原理与简单的编程

其实原理如果简单点理解就很简单,因为http是无状态的,所以每次请求以后都会与服务器断开链接,那就是说客户端可以很容易找到服务器,但是服务器如果想给你客户端发送消息就比较麻烦,如果不明白的可以参考上一篇文章 B/S(Web)实时通讯解决方案。

SignalR就很好的解决了这个问题,也就说实现了实现了浏览器与服务器的全双工通信。

 

2.1、客户端至服务端(B=>S)

客户端代码

<script  type="text/javascript">  
    var ticker = $.connection.simpleHub;
    $.connection.hub.start();

    $("#btn").click(function () {

        // 链接完成以后,可以发送消息至服务端
        ticker.server.sendMsg("需要发送的消息");
    });
    
</script>
</div>

服务端代码

  [HubName("simpleHub")]
    public class SimpleHub : Hub
    {
        public void SendMsg(string msg)
        {
            // 获取链接id
            var connectionId = Context.ConnectionId; 
         // 获取cookie
            var cookie = Context.RequestCookies;

        }

    }
</div>

 

其中SimpleHub就是我们定义的继承Hub类SimpleHub,然后我们可以用特性HubName进行重命名。

然后开始链接。

在链接完成以后,我们就可以调用在SimpleHub类中调用的方法。这就就很简单的实现了客户端至服务端发送消息。

我们还可以在Context中获取我们想要的东西,比如链接id,cookie等。

 

2.2、服务端至客户端(S=>B)

服务端代码

 [HubName("simpleHub")]
    public class SimpleHub : Hub
    {
        public void SendMsg(string msg)
        {
            Clients.All.msg("发送给客户端的消息"); 
        }

    }
</div>

 

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

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

  • Asp.net SignalR 应用并实现群聊功能 开源代码
  • 最详细的ASP.NET微信JS-SDK支付代码
  • 使用ASP.NET中关于代码分离的实例分享
  • ASP.NET使用HttpWebRequest读取远程网页源代码
  • ASP.NET书籍信息录入实现代码
  • ASP.NET数组删除重复值实现代码
  • ASP.NET连接sql2008数据库的实现代码
  • asp.net中控制反转的理解(文字+代码)
  • asp.net源程序编译为dll文件并调用的实现过程
  • asp.net各种cookie代码和解析实例

相关文章

  • 2017-05-11如何取消.net后台线程的执行
  • 2017-05-11在ASP.NET 2.0中操作数据之四:使用ObjectDataSource展现数据
  • 2017-05-11Asp.net生成Excel文件并下载(更新:解决使用迅雷下载页面而不是文件的问题)
  • 2017-05-11asp.net jquery无刷新分页插件(jquery.pagination.js)
  • 2017-05-11asp.net 存储过程调用
  • 2018-08-20WPF实现ScrollViewer滚动到指定控件处
  • 2017-05-11ASP.NET获取真正的客户端IP地址的6种方法
  • 2017-05-11Linux下部署.net core环境的步骤详解
  • 2017-05-11增加asp.net应用程序性能的20种方法(简单有效)
  • 2017-05-11ASP.net 页面被关闭后,服务器端是否仍然执行中?

文章分类

  • 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实现服务器文件下载到本地的方法
    • Visual Studio 2017通过SSH调试Linux上.NET Core
    • SQL注入中绕过 单引号 限制继续注入
    • ASP.NET中生成Excel遇到的问题及改进方法
    • 关于.NET动态代理的介绍和应用简介
    • C# Math.Round()函数问题
    • ASP.NET SignaiR 实现消息的即时推送,并使用Push.js实现通知的示例代码
    • firebird Embedded模式(.net 3.5)
    • VS2012/VS2013本地发布网站步骤详解
    • asp.net使用LINQ to SQL连接数据库及SQL操作语句用法分析

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

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