手机版

Asp.net信号员让实时通信变得如此简单

时间:2021-09-01 来源:互联网 编辑:宝哥软件园 浏览:

在巡逻项目中,需要发送实时消息,提醒你开始任务,这样你才有机会接触到Signaler。在使用过程中发现,使用Signaler实现通信非常简单。我想我会从以下三个方面来分享:

1.什么是信号员

Asp.net信号器是微软实现实时通信的类库。一般SignalR会利用JavaScript的长轮询来实现客户端和服务器端的通信。随着Html5中WebSockets的出现,SignalR也支持WebSockets通信。此外,SignalR开发的程序并不局限于在IIS中托管,还可以在任何应用程序中托管,包括控制台、客户端程序和Windows服务等。此外,它还支持Mono,这意味着它可以跨平台部署在Linux环境中。

信号内部有两种对象:

Http Persisten Connection对象:用于解决长期连接的函数。客户端也可以主动向服务器请求数据,但是服务器不需要实现太多的细节,只需要处理PersistentConnection中提供的五个事件:on connected、on reconned、on received、on error和OnDisconnect。

Hub (Hub)对象:用于解决实时信息交换的功能。服务器可以通过网址注册一个或多个集线器。只要连接到该集线器,它就可以与所有客户端共享发送到服务器的信息。同时,服务器可以调用客户端的脚本。

SignalR封装了整个信息交换,客户端和服务器端都使用JSON进行通信。服务器上声明的所有Hub信息将生成JavaScript并将其输出到客户端.NET依赖于proxy来生成Proxy对象,而Proxy在内部将JSON转换为对象。

二、为什么要用信号器

聊天室,如在线客服系统、IM系统等。

消息实时推送服务

巡逻人员位置的实时推送

三、如何实现signor,下面主要介绍signor的第一个功能,聊天。下面是一个简单的演示:

1.创建新的ASP.NET网络应用程序

2.选择模板MVC,同时更改无身份验证

3.选择新项目,右键单击它-选择管理数字包-搜索信号-安装微软ASP.NET信号

4.创建新的启动程序

向类中添加代码:

app。mapsignor();

5.创建一个新的信号集线器类

6.在中心类ChatHub.cs中添加以下代码

客户端调用的公共类chathub : hub {///summary////服务器代码/////summary//param name=' message '/param public void send(字符串消息){var name=guid.newguid()。tostring()。toupper();//调用所有客户端的sendMessage方法clients.all.sendmessage(名称、消息);}///summary////call////summary///returns/returns connected()上的公共重写任务{trace。writeline(“客户端连接成功”);返回基地。OnConnected();} }7.修改Index.cshtml页面代码

@{ ViewBag。Title='聊天窗口';}h2Chat/h2div class='container '输入类型='text' id='message' /输入类型='button' id='sendmessage '值='Send' /输入类型=' hidden ' id=' display name '/ul id=' discussion '/ul/div @ section scripts {!-参考信号库。-Script src=' http : ~/scripts/jquery。signor-2 . 2 . 2 . min . js '/脚本!-参考自动生成的信号中枢脚本。运行时可以在浏览器的Source-script src=' http : ~/signor/hubs '/script script $(function(){//1)下看到。对自动生成的中心代理的引用必须以小写字母var chat=$.connection.chatHub开头;//2.开始连接到服务器完成功能表示点击事件$。connection.hub.start()。done(function(){ $(' # sendmail '))。click(function(){//调用server hub的send方法时,也应该以chat . server . send($(' #)//清空输入框信息,获取焦点$('#message ')开始。val(“”)。焦点();});});//3.定义服务器调用的客户端sendMessage以显示新消息chat . client . send Message=function(name,Message) {//添加消息$ ('# discussion ')。在页面上追加(' listrong ' htmlencode(name)'/strong : ' htmlencode(message)'/Li ');};//将焦点设置到输入框$(“# message”)。焦点();});//Html编码显示的消息函数HTMlencode(value){ var encoded value=$(' div/')。文本(值)。html();返回编码值;} /script}8。直接运行程序,打开多个网页,就能收到同样的消息。如下所示:

综上所述,SignalR易于使用,配置简单,功能强大。

上面的Asp.net信号员让实时通讯变得如此简单,这是边肖分享的全部内容。希望能给大家一个参考,支持我们。

版权声明:Asp.net信号员让实时通信变得如此简单是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。