ASP signalR简单服务器推送功能

来源:互联网 发布:java jsonrpc 框架 编辑:程序博客网 时间:2024/05/31 06:21

此文章简单清楚的实现了由后端服务器推送消息给前端的实例,不足之处,欢迎探讨!

推送功能其实很简单, 跟着下面步骤走!
1. 必须在 .net4.5 环境下 (其他没试过,可以实现,但复杂)
2. 在工具选项中-NuGet程序包管理器-程序包管理器控制台-输入Install-Package Microsoft.AspNet.SignalR
3. 在程序中会自动生成script文件这里写图片描述
4. 接下来添加HTML文件 里面有注释 自己看了哦 n_n

<!DOCTYPE html>    <html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>    <title></title>    <script src="Scripts/jquery-1.6.4.min.js"></script>    <script src="Scripts/jquery.signalR-2.2.0.min.js"></script>        <!--手动加上自动生成引用-->    <script src="signalr/hubs"></script> </head><body >    <div>        <input type="text" id="message" />        <input type="button" id="sendmessage" value="Send" /><br /><br />        <textarea id="messageBox" placeholder="此message 由后台推送" readonly cols="30" rows="5"></textarea>    </div>    <script type="text/javascript">        $(function () {            // 【1】声明代理引用            var con = $.connection.pushHub;            // 【2】创建方法可以调用广播消息的功能。            con.client.broadcastMessage = function ( message) {                $("#messageBox").val(message);            };            // 【3】开始连接            $.connection.hub.start().done(function () {                $('#sendmessage').click(function () {                    // 【4】服务器的发送方法                    con.server.send($('#message').val());                });            });        });    </script></body></html>

5.加个服务器推送类

using Microsoft.AspNet.SignalR;using System;using System.Collections.Generic;using System.Linq;using System.Threading.Tasks;using System.Web;namespace SignalRChat{    public class PushHub : Hub    {        public void Send(string message)        {            Clients.All.broadcastMessage(   message);        }    }}

6.再加个初始化

using Microsoft.Owin;using Owin;[assembly: OwinStartup(typeof(SignalRChat.Startup))]namespace SignalRChat{    public class Startup    {        public void Configuration(IAppBuilder app)        {            //任何连接或引用连线和配置都应该在这里            app.MapSignalR();        }    }}

好了…就这么简单 可以测试用了 还可以扩展简单局域网聊天等
效果图

实在懒的话 我稍会给个demo 吧!

    //声明全局变量    //public static IHubContext GetHubContext()    //{        //return GlobalHost.ConnectionManager.GetHubContext<ChatHub>();    //}
1 0
原创粉丝点击