首页 > 学院 > 开发设计 > 正文

[Solution] 使用 ASP.NET SignalR 添加实时 Web

2019-11-17 02:12:55
字体:
来源:转载
供稿:网友

[Solution] 使用 asp.net SignalR 添加实时 Web

  ASP.NET SignalR 是为 ASP.NET 开发人员提供的一个库,可以简化开发人员将实时 Web 功能添加到应用程序的过程。实时 Web 功能是指这样一种功能:当所连接的客户端变得可用时服务器代码可以立即向其推送内容,而不是让服务器等待客户端请求新的数据。

  官网:http://signalr.net/

  下载:install-package Microsoft.AspNet.SignalR

  

  本节将简单快速介绍

  • 实现原理
  • Hello World
  • 快速分析
  • 注意事项

实现原理

  1. 如果浏览器<=Internet Explorer 8,用长轮询的方式
  2. 如果配置中指定了使用jsonp,则会使用长轮询的方式
  3. 如何需要创建跨域连接,将会如使用WebSocket,如果一下条件满足的话(否则用长轮询)
    1. 客户端支持WebSocket
    2. 服务端支持WebSocket
    3. 客户端支持Cross-Origin Resource Sharing

基于SignalR(SR)的实现原理,所以SR在客户端浏览器IE8以上基本都是完全兼容的。可以说完全支持jQuery 1.6.4的浏览器就能支持SignalR。

Hello World

创建空的Asp.Net项目

安装

  install-package Microsoft.AspNet.SignalR

  install-package bootstrap

添加一个集线器类

    public class ChatHub : Hub    {        public void Send(string name, string message)        {            // Call the broadcastMessage method to update clients.            Clients.All.broadcastMessage(name, message);        }    }

  

添加一个OWIN Startup类

[assembly: OwinStartup(typeof(SignalRChart.Startup))]namespace SignalRChart{    public class Startup    {        public void Configuration(IAppBuilder app)        {            // 有关如何配置应用程序的详细信息,请访问 http://go.microsoft.com/fwlink/?LinkID=316888            app.MapSignalR();        }    }}

  

添加一个index.html

1.导入js

    <!--Script references. -->    <!--Reference the jQuery library. -->    <script src="Scripts/jquery-1.9.1.min.js"></script>    <!--Reference the SignalR library. -->    <script src="Scripts/jquery.signalR-2.2.0.min.js"></script>    <!--Reference the autogenerated SignalR hub script. -->    <script src="signalr/hubs"></script>

2.hub

// Declare a PRoxy to reference the hub.var chat = $.connection.chatHub;// Call the Send method on the hub.chat.server.send(name, message); // Create a function that the hub can call to broadcast messages.chat.client.broadcastMessage = function (name, message) {}

快速分析

Hub代码

Client代码

注意事项

In ASP.NET MVC 4 you can do the following: <script src="~/signalr/hubs"></script> If you're writing an ASP.NET MVC 3 application, make sure that you are using Url.Content for your script references: <script src="@Url.Content("~/signalr/hubs")"></script>

代码下载:等待整理

本文作者:Never、C

本文链接:http://www.VEVb.com/neverc/p/4617488.html


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表