SignalR简单例子及入口app.MapSignalR()

  1. 本系列教程使用工具
  2. 开发工具:VS2015
    .NET版本:4.5
    SignalR 版本:2.x系列

  1. 开发(点击下载源码

  2. 创建空Asp.Net Web项目,在程序包管理器控制台中输入如下命令,安装SignalR:

  3. [csharp] view plain copy
    print ?
    1. <span style="font-size:14px;">install-package Microsoft.AspNet.SignalR</span>  
  1. install-package Microsoft.AspNet.SignalR

在项目中右击,选择添加|SignalR Hub Class(V2),命名为“ChatHub”,代码如下:
  1. [csharp] view plain copy
    print ?
  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Linq;  
  4. using System.Web;  
  5. using Microsoft.AspNet.SignalR;  
  6.   
  7. namespace SignalRChat  
  8. {  
  9.     public class ChatHub : Hub  
  10.     {  
  11.         public void Send(string name,string message)  
  12.         {  
  13.             Clients.All.broadcastMessage(name, message);  
  14.         }  
  15.     }  
  16. }  
using System; using System.Collections.Generic; using System.Linq; using System.Web; using Microsoft.AspNet.SignalR; namespace SignalRChat { public class ChatHub : Hub { public void Send(string name,string message) { Clients.All.broadcastMessage(name, message); } } }

在项目中右击,选择添加|OWIN Startup类,命名为“Startup”,代码如下:
[csharp] view plain copy
print ?
  1. using System;  
  2. using System.Threading.Tasks;  
  3. using Microsoft.Owin;  
  4. using Owin;  
  5.   
  6. [assembly: OwinStartup(typeof(SignalRChat.Startup))]  
  7.   
  8. namespace SignalRChat  
  9. {  
  10.     public class Startup  
  11.     {  
  12.         public void Configuration(IAppBuilder app)  
  13.         {  
  14.             // 有关如何配置应用程序的详细信息,请访问 http://go.microsoft.com/fwlink/?LinkID=316888  
  15.             app.MapSignalR();  
  16.         }  
  17.     }  
  18. }  
using System; using System.Threading.Tasks; using Microsoft.Owin; using Owin; [assembly: OwinStartup(typeof(SignalRChat.Startup))] namespace SignalRChat { public class Startup { public void Configuration(IAppBuilder app) { // 有关如何配置应用程序的详细信息,请访问 http://go.microsoft.com/fwlink/?LinkID=316888 app.MapSignalR(); } } }

在项目中添加html页面,命名为“index.html”,代码如下:
  1. <!DOCTYPE html>  
  2. <html>  
  3. <head>  
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>  
  5.     <title>SignalR Simple Chat</title>  
  6.     <meta charset="utf-8" />  
  7.     <style type="text/css">  
  8.         .container{  
  9.             background-color:#99CCFF;  
  10.             border:thick solid #808080;  
  11.             padding:20px;  
  12.             margin:20px;  
  13.         }  
  14.     </style>  
  15. </head>  
  16. <body>  
  17.     <div class="container">  
  18.         <input type="text" id="message" />  
  19.         <input type="button" id="sendmessage" value="send" />  
  20.         <input type="hidden" id="displayname"/>  
  21.         <ul id="discussion">  
  22.         </ul>  
  23.     </div>  
  24.     <script src="Scripts/jquery-1.6.4.min.js"></script>  
  25.     <script src="Scripts/jquery.signalR-2.2.1.min.js"></script>  
  26.     <script src="signalr/hubs"></script>  
  27.     <script>  
  28.         $(function () {  
  29.             //声明hub代理  
  30.             var chat = $.connection.chatHub;  
  31.             //创建hub调用的broadcast函数  
  32.             chat.client.broadcastMessage = function (name, message) {  
  33.                 //获得发送人的名字和消息  
  34.                 var encodedName = $('<div/>').text(name).html();  
  35.                 var encodedMsg = $('<div/>').text(message).html();  
  36.                 //将接收的信息添加到页面上  
  37.                 $('#discussion').append('<li><strong>' + encodedName  
  38.                     + '</strong>:  '+encodedMsg+'</li>');  
  39.             };  
  40.             //获得当前用户的名字  
  41.             $('#displayname').val(prompt('Enter your name:', ''));  
  42.             //将焦点设置在信息框  
  43.             $('#message').focus();  
  44.             //启动链接  
  45.             $.connection.hub.start().done(function () {  
  46.                 $('#sendmessage').click(function () {  
  47.                     //调用hub的Send方法  
  48.                     chat.server.send($('#displayname').val(), $('#message').val());  
  49.                     //清理输入框,并将焦点重新设置在输入框中  
  50.                     $('#message').val('').focus();  
  51.                 });  
  52.             });  
  53.         });  
  54.     </script>  
  55. </body>  
  56. </html>  
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>SignalR Simple Chat</title> <meta charset="utf-8" /> <style type="text/css"> .container{ background-color:#99CCFF; border:thick solid #808080; padding:20px; margin:20px; } </style> </head> <body> <div class="container"> <input type="text" id="message" /> <input type="button" id="sendmessage" value="send" /> <input type="hidden" id="displayname"/> <ul id="discussion"> </ul> </div> <script src="Scripts/jquery-1.6.4.min.js"></script> <script src="Scripts/jquery.signalR-2.2.1.min.js"></script> <script src="signalr/hubs"></script> <script> $(function () { //声明hub代理 var chat = $.connection.chatHub; //创建hub调用的broadcast函数 chat.client.broadcastMessage = function (name, message) { //获得发送人的名字和消息 var encodedName = $('<div/>').text(name).html(); var encodedMsg = $('<div/>').text(message).html(); //将接收的信息添加到页面上 $('#discussion').append('<li><strong>' + encodedName + '</strong>:  '+encodedMsg+'</li>'); }; //获得当前用户的名字 $('#displayname').val(prompt('Enter your name:', '')); //将焦点设置在信息框 $('#message').focus(); //启动链接 $.connection.hub.start().done(function () { $('#sendmessage').click(function () { //调用hub的Send方法 chat.server.send($('#displayname').val(), $('#message').val()); //清理输入框,并将焦点重新设置在输入框中 $('#message').val('').focus(); }); }); }); </script> </body> </html>

运行,程序,效果如下图,到此为止一个简单的SignalR程序完成了。
本系列教程使用工具
开发工具:VS2015
.NET版本:4.5
SignalR 版本:2.x系列
开发(点击下载源码)
创建空Asp.Net Web项目,在程序包管理器控制台中输入如下命令,安装SignalR:
[csharp] view plain copy
 
<span style="font-size:14px;">install-package Microsoft.AspNet.SignalR</span> 
在项目中右击,选择添加|SignalR Hub Class(V2),命名为“ChatHub”,代码如下:
[csharp] view plain copy
 
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using Microsoft.AspNet.SignalR; 
 
namespace SignalRChat 

    public class ChatHub : Hub 
    { 
        public void Send(string name,string message) 
        { 
            Clients.All.broadcastMessage(name, message); 
        } 
    } 
在项目中右击,选择添加|OWIN Startup类,命名为“Startup”,代码如下:
[csharp] view plain copy
 
using System; 
using System.Threading.Tasks; 
using Microsoft.Owin; 
using Owin; 
 
[assembly: OwinStartup(typeof(SignalRChat.Startup))] 
 
namespace SignalRChat 

    public class Startup 
    { 
        public void Configuration(IAppBuilder app) 
        { 
            // 有关如何配置应用程序的详细信息,请访问 http://go.microsoft.com/fwlink/?LinkID=316888 
            app.MapSignalR(); 
        } 
    } 
在项目中添加html页面,命名为“index.html”,代码如下:
[html] view plain copy
 
<!DOCTYPE html> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 
    <title>SignalR Simple Chat</title> 
    <meta charset="utf-8" /> 
    <style type="text/css"> 
        .container{ 
            background-color:#99CCFF; 
            border:thick solid #808080; 
            padding:20px; 
            margin:20px; 
        } 
    </style> 
</head> 
<body> 
    <div class="container"> 
        <input type="text" id="message" /> 
        <input type="button" id="sendmessage" value="send" /> 
        <input type="hidden" id="displayname"/> 
        <ul id="discussion"> 
        </ul> 
    </div> 
    <script src="Scripts/jquery-1.6.4.min.js"></script> 
    <script src="Scripts/jquery.signalR-2.2.1.min.js"></script> 
    <script src="signalr/hubs"></script> 
    <script> 
        $(function () { 
            //声明hub代理 
            var chat = $.connection.chatHub; 
            //创建hub调用的broadcast函数 
            chat.client.broadcastMessage = function (name, message) { 
                //获得发送人的名字和消息 
                var encodedName = $('<div/>').text(name).html(); 
                var encodedMsg = $('<div/>').text(message).html(); 
                //将接收的信息添加到页面上 
                $('#discussion').append('<li><strong>' + encodedName 
                    + '</strong>:  '+encodedMsg+'</li>'); 
            }; 
            //获得当前用户的名字 
            $('#displayname').val(prompt('Enter your name:', '')); 
            //将焦点设置在信息框 
            $('#message').focus(); 
            //启动链接 
            $.connection.hub.start().done(function () { 
                $('#sendmessage').click(function () { 
                    //调用hub的Send方法 
                    chat.server.send($('#displayname').val(), $('#message').val()); 
                    //清理输入框,并将焦点重新设置在输入框中 
                    $('#message').val('').focus(); 
                }); 
            }); 
        }); 
    </script> 
</body> 
</html> 
运行,程序,效果如下图,到此为止一个简单的SignalR程序完成了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值