你的位置:首页 > 软件开发 > ASP.net > asp.net signalR 专题—— 第一篇 你需要好好掌握的实时通讯利器

asp.net signalR 专题—— 第一篇 你需要好好掌握的实时通讯利器

发布时间:2016-03-15 19:00:03
一:背景  我们知道传统的http采用的是“拉模型”,也就是每次请求,每次断开这种短请求模式,这种场景下,client是老大,server就像一个小乌龟任人摆布,很显然,只有一方主动,这事情就没那么完美了,所以为了能够让server也能主动 ...

一:背景

  我们知道传统的http采用的是“拉模型”,也就是每次请求,每次断开这种短请求模式,这种场景下,client是老大,server就像一个小乌龟任人摆布,

很显然,只有一方主动,这事情就没那么完美了,所以为了能够让server也能主动点,html5就应运而生了,或许大家都知道html5中有两种server的主动

模型,第一种叫做websockect,也就是基于tcp模式的双工通讯,还有一种叫做SSE,也就是客户端来订阅服务器的一种事件模型,当然了,在html5出

来之前,如果要做到服务器主动,我们只能采用变相的longpool和foreverframe勉强实现,而signalR这吊毛就是一个对他们进行了高层封装,也就是说

signalR会在这四种技术中根据浏览器和服务器设置采取最优的一种模式,废话不多说,我们快速建立一个例子。

 

二:快速搭建

  这里我们采用 PersistentConnection模式来构建一个持久连接让大家快速接触下:

 

1. PersistentConnection

   在新建项目中,我们选择”Sig“这里我们就使用默认的名字MyConnection1。

  asp.net signalR 专题—— 第一篇  你需要好好掌握的实时通讯利器

 

using System;using System.Collections.Generic;using System.Linq;using System.Threading.Tasks;using System.Web;using Microsoft.AspNet.SignalR;namespace WebApplication1{  public class MyConnection1 : PersistentConnection  {    protected override Task OnConnected(IRequest request, get='_blank'>string connectionId)    {      return Connection.Send(connectionId, "Welcome!");    }    protected override Task OnReceived(IRequest request, string connectionId, string data)    {      return Connection.Broadcast(data);    }  }}

原标题:asp.net signalR 专题—— 第一篇 你需要好好掌握的实时通讯利器

关键词:ASP.NET

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。