博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SignalR快速入门
阅读量:7153 次
发布时间:2019-06-29

本文共 2420 字,大约阅读时间需要 8 分钟。

本篇是SignalR系列教程的第一篇,本篇内容介绍了如何创建SignalR应用,如何利用SignalR搭建简易的聊天室等,本篇内容参考自:http://www.asp.net/signalr/overview/older-versions/tutorial-getting-started-with-signalr,文中会有我对实例代码的一些理解。

首先我们创建ASP.NET空程序,并使用“程序包管理控制台”执行“Install-PackAge Microsoft.AspNet.SignaLR”安装最新版本的SignaLR。

我们新建一个名为"ChatHub"的类并继承"Hub'类。在类中我们添加一个Send方法

1
2
3
4
5
6
7
8
9
10
11
12
using 
Microsoft.AspNet.SignalR;
 
namespace 
SignalR
{
    
public 
class 
ChatHub:Hub
    
{
        
public 
void 
Send(
string 
name,
string 
message)
        
{
            
Clients.All.broadcastMessage(name, message);
        
}
    
}
}

我们新建一个为名index的html文件并把它设为启动项

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<!
DOCTYPE 
html>
<
html
>
<
head
>
    
<
title
>SignalR Simple Chat</
title
>
    
<
style 
type="text/css">
        
.container {
            
            
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.0.js"></
script
><
br
>
 
<
script 
src="/signalr/hubs""></
script
><
br
>
    
<
script 
type="text/javascript">
        
$(function () {
            
var chat = $.connection.chatHub; //这里要对应Hub的派生类
            
chat.client.broadcastMessage = function (name, message) {
                
//这里方法相当于订阅了chatHub类中的broadcastMessage方法,后台执行后执行打工钱方法
                
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 () {
                    
//调用后台的senf方法
                    
chat.server.send($('#displayname').val(), $('#message').val());
                    
$('#message').val('').focus();
                
});
            
});
        
});
    
</
script
>
</
body
>
</
html
>

 

我们新建一个Startup文件,并在Configuration方法中注册SignalR路由

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
using 
Microsoft.Owin;
using 
Owin;
using 
SignalR;
 
[assembly: OwinStartup(
typeof
(Startup))]
 
namespace 
SignalR
{
    
public 
class 
Startup
    
{
        
public 
void 
Configuration(IAppBuilder app)
        
{
            
app.MapSignalR();
        
}
    
}
}

  

按下F5运行代码,将会提示输入用户名,并可以发送消息

 

转载于:https://www.cnblogs.com/tsql/p/8663186.html

你可能感兴趣的文章
Chrome 插件
查看>>
iptables 1.4.17 发布,Linux防火墙
查看>>
sed 与 awk
查看>>
《Effective C#》读书笔记——条目24:用委托实现回调<使用C#表达设计>
查看>>
远程连接 sql2005
查看>>
JS倒计时代码
查看>>
Web.config总结
查看>>
c++的重载,覆盖与隐藏
查看>>
35种神奇的心理效应
查看>>
[置顶] 搭建一个流媒体服务器--引子
查看>>
String,StringBuffer与StringBuilder的差别??
查看>>
普林斯顿公开课 算法2-3:插入排序
查看>>
HTML5游戏开发引擎Pixi.js新手入门讲解
查看>>
51单片机寄存器组的设置(转)
查看>>
Unity 实现物体破碎效果(转)
查看>>
ASIHTTPRequestErrorDomain Code=5
查看>>
2011年排名前七位的Linux操作系统。
查看>>
SECURITY_ATTRIBUTES 设置低权限
查看>>
php中array_merge合并数组详解
查看>>
阅读jquery源码与js依赖加载的模块化!
查看>>