开发者社区> 莫问今朝乄> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

SignalR简单Demo

简介:   我们实现一个简单的消息通知的Demo    在NuGet中添加SignalR引用 install-package Microsoft.AspNet.SignalR  然后我们创建一个类来引用Hub类 namespace SignalRDemo.
+关注继续查看

 

  我们实现一个简单的消息通知的Demo

   在NuGet中添加SignalR引用

install-package Microsoft.AspNet.SignalR

 然后我们创建一个类来引用Hub类

namespace SignalRDemo.Hubs
{
    public class ServerHub:Hub
    {
    }
}

 或者直接在添加项中添加SignalR添加SignalR

  然后我们在ServerHub类中创建一个发送信息方法

/// <summary>
/// 服务器发送方法
/// </summary>
/// <param name="msg"></param>
public void SendMsg(string msg)
{
       //调用客户端的showMsg方法
       Clients.All.showMsg(Context.ConnectionId, msg);
}

 

   这个方法由客户端进行调用,方法中Clients代表客户端对象,这段话表示调用客户端的showMsg方法.而All代表是给所有人发送通知

    All:调用所有人方法

    Others:调用除去自己所有人方法

  Caller:调用自己方法

  Group:调用组内所有人方法

  Client(string connectionId):调用指定连接编号的方法

     Context.ConnectionId是当前连接用户的标志,是一个GuId

    然后我们创建一个Start类来注册SignalR

namespace SignalRDemo
{
    public class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            app.MapSignalR();
       }
    }
}

 

   注意,此处是一个约定,类名与方法名必须为Startup和Configuration。该类还必须在网站根目录,否则运行时就会出错

    接下来我们就可以创建页面了

    创建一个Home控制器Index页面。

    在页面中引用JQuery类库与SignalR类库

然后我们再手动添加一个类库引用

 <script src="~/SignalR/Hubs"></script>

  这个js类库在目录下是找不到的,它是在运行时自动创建

  我们可以启动项目来查看下这个路径

  如果出现此页面则表示我们SignalR配置OK。

   下面我们就可以写客户端了

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
</head>
<body>
    <div> 
         <input  type="text" id="msg"/>
        <button id="sendMsg">发送消息</button>
    </div>
    <ol id="showMsg">

    </ol>
    <script src="~/Scripts/jquery-1.6.4.js"></script>
    <script src="~/Scripts/jquery.signalR-2.2.2.js"></script>
    <script src="~/SignalR/Hubs"></script>
    <script>
        $(function () {
            //获取服务端连接对象
            var hub = $.connection.serverHub;
            //创建服务端所调用的客户端方法
            hub.client.showMsg=function(name, msg){
                $('#showMsg').append('<li><span style="color:red">'+name+':</span>'+msg+'</li>')
            }
            //开始连接服务器
            $.connection.hub.start().done(function () {
                //连接成功
                $('#sendMsg').bind('click', function () {
                    //调用服务端发送方法
                    hub.server.sendMsg($('#msg').val());
                })
            }).fail(function () {
                //连接失败
                alert("连接失败");
            });
        })
    </script>
</body>
</html>

   然后就可以简单进行消息通知了

 

   

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
SignalR的简单使用(二)
原文:SignalR的简单使用(二)   之前提到SignalR代理在网页,通过生成的Js来完成相关的功能。但我不禁想一个问题, 难到SignalR的服务端就能寄存在web端吗,通过访问网页能方式才能启动服务,还有客户端 也只能在web端吗?经过看官网的教程得到 了结论,两者的答案都是否定的。
1029 0
SignalR的简单实现(一)
原文:SignalR的简单实现(一)    ASP.NET SignalR是ASP.NET开发人员的一个新库,它使您的应用程序添加实时Web功能变得非常简单。什么是“实时网络”功能?能够实时地将服务器端代码推送到连接的客户端的能力。
1234 0
SignalR---DOTNET客户端
原文:SignalR---DOTNET客户端 这里面有用到异步的相关知识,本人前几篇文章也简单的提到。 SignalR客户端要寄宿在.NET的客户端,必须安装Microsoft.AspNet.SignalR.Client。
994 0
SignalR来做实时Web聊天
本章和大家分享的内容是使用Signal R框架创建个简易的群聊功能,主要讲解如何在.Net的MVC中使用这个框架,由于这个项目有官方文档(当然全英文),后面也不打算写分享篇了,主要目的是让朋友们在需要使用Web实时通信的时候有更多一种解决方案,毕竟这是微软主推的一种解决方案之一。
1134 0
一步一步学习SignalR进行实时通信_1_简单介绍
原文:一步一步学习SignalR进行实时通信_1_简单介绍 一步一步学习SignalR进行实时通信\_1_简单介绍 SignalR 一步一步学习SignalR进行实时通信_1_简单介绍 前言 SignalR介绍 支持的平台 相关说明 OWIN 结束语...
1031 0
毕设demo写好
2015年1月20日 14:41:47 阶段性暂停!! 把运行结果截图给了老师,老师说先整理下文档,然后下学期来了再部署到服务器上。 那么,下学期来了,估计也要把Epm和CR1000什么的搞好了。 先总结一下目前的情况好了: 0.用到的技术 python语言,webpy框架,mysql数据库,nginx部署,emacs和vim编辑器,bootstrap框架,echarts图表库 1.python搭建网站 用的是webpy框架 主要看webpy.org官方文档 2.部署 用nginx做web server。
1067 0
[SignalR]异常信息捕获以及处理
原文:[SignalR]异常信息捕获以及处理 异常处理,一般采用try..catch方式处理,而signalR里面有HubPipelineModule类可以捕获到Hub内发生的异常信息。 从上图中,可以发现里面有OnIncomingError的虚方法,可以捕获在Hub内发生的异常信息。
751 0
SignalR 实现web浏览器客户端与服务端的推送功能
SignalR 是一个集成的客户端与服务器库,基于浏览器的客户端和基于 ASP.NET 的服务器组件可以借助它来进行双向多步对话。 换句话说,该对话可不受限制地进行单个无状态请求/响应数据交换;它将继续,直到明确关闭。
1089 0
C# SignalR 即时通信
MSDN教程:https://docs.microsoft.com/en-us/aspnet/signalr/ 个人博客:http://www.cnblogs.com/zhili/p/SignalRQuickStart.html 这两篇博客比较详细!
1006 0
+关注
莫问今朝乄
三人行,必有我师
83
文章
1
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载