ASP signalR简单服务器推送功能

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

推送功能其实很简单, 跟着下面步骤走!
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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值