文档章节

.Net使用SignalR实现实时推送功能

o
 osc_g8254g7s
发布于 2019/08/20 09:10
字数 464
阅读 0
收藏 0

精选30+云产品,助力企业轻松上云!>>>

 话不多说,先送上源码地址 https://github.com/JSli-GitHub/SignalRDemo

 以下是项目详细步骤。

 

1.创建一个项目,我这里创建的的是mvc的项目(其他的也可以),创建完成后使用Nuget安装SignalR包,安装完成后,Scripts文件夹下会出现 jquery.signalR-x.x.x.js和jquery.signalR-x.x.x.min.js文件.

2.右键项目添加一个SignalR Hub Class(v2) 我命齐名为ServerHub 如下图

创建完成后将一下代码粘贴到ServerHub中

/// <summary>
        /// 供客户端调用的服务器端代码
        /// </summary>
        /// <param name="message"></param>
        public void Send(string message)
        {
            Clients.All.sendMessage(message);
        }

3.创建一个Startup类,如果已有就不需要重复添加了。按照如下代码更新Startup类(如果是MVC项目也可以添加到RouteConfig中)。

[assembly: OwinStartupAttribute(typeof(SignalDemo.RouteConfig))]
namespace SignalDemo
{   public class Startup { #region MyRegion public void Configuration(IAppBuilder app) { app.MapSignalR(); //ConfigureAuth(app); } #endregion }
}

4.前端页面(因为我这里创建的是mvc项目所以一下为cshtml代码)

@{
    ViewBag.Title = "Chat";
    Layout = null;
}

<h2>Chat</h2>
<script src="~/Scripts/jquery-3.3.1.min.js"></script>
<div class="container">
    <input type="text" id="message" />
    <input type="button" id="sendmessage" value="Send" />
    <input type="hidden" id="displayname" />
    <ul id="discussion"></ul>
</div>


    <!--引用SignalR库. -->
    <script src="~/Scripts/jquery.signalR-2.4.1.min.js"></script>
    <!--引用自动生成的SignalR 集线器(Hub)脚本.在运行的时候在浏览器的Source下可看到 -->
    <script src="~/signalr/hubs"></script>
    <script>
        $(function () {
            // 引用自动生成的集线器代理
            var chat = $.connection.serverHub;
            // 定义服务器端调用的客户端sendMessage来显示新消息

            chat.client.sendMessage = function (message) {
                // 向页面添加消息
                $('#discussion').append('<li>' + htmlEncode(message) + '</li>');
            };
            // 设置焦点到输入框
            $('#message').focus();
            // 开始连接服务器
            $.connection.hub.start().done(function () {
                $('#sendmessage').click(function () {
                    // 调用服务器端集线器的Send方法
                    chat.server.send($('#message').val());
                    // 清空输入框信息并获取焦点
                    $('#message').val('').focus();
                });
            });
        });

        // 为显示的消息进行Html编码
        function htmlEncode(value) {
            var encodedValue = $('<div />').text(value).html();
            return encodedValue;
        }
    </script>

 下面是演示效果

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。
史上最全面的SignalR系列教程-目录汇总

1、引言 最遗憾的不是把理想丢在路上,而是理想从未上路。 每一个将想法变成现实的人,都值得称赞和学习。 致正在奔跑的您! 2、SignalR介绍 SignalR实现服务器与客户端的实时通信 ,她是一个...

osc_cw97bsoa
04/16
6
0
史上最全面的SignalR系列教程-目录汇总

1、引言 最遗憾的不是把理想丢在路上,而是理想从未上路。 每一个将想法变成现实的人,都值得称赞和学习。 致正在奔跑的您! 2、SignalR介绍 SignalR实现服务器与客户端的实时通信 ,她是一个...

.NET快速开发框架
2019/09/16
0
0
.net core 3.0 Signalr - 实现一个业务推送系统

介绍 ASP.NET Core SignalR 是一个开源代码库,它简化了向应用添加实时 Web 功能的过程。 实时 Web 功能使服务器端代码能够即时将内容推送到客户端。 SignalR 的适用对象: 需要来自服务器的...

谢新根
2019/10/05
412
0
Asp.net SignalR 让实时通讯变得如此简单

巡更项目中,需要发送实时消息,以及需要任务开始提醒,于是便有机会接触到SignalR,在使用过程中,发现用SignalR实现通信非常简单,下面我思明将从三个方面分享一下: 一、SignalR是什么 As...

osc_3z3urvvj
2019/07/16
12
0
.net core 3.0 Signalr - 实现一个业务推送系统

介绍 ASP.NET Core SignalR 是一个开源代码库,它简化了向应用添加实时 Web 功能的过程。 实时 Web 功能使服务器端代码能够即时将内容推送到客户端。 SignalR 的适用对象: 需要来自服务器的...

osc_8k5qho63
04/16
2
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周日乱弹 —— 那么长的绳子,你这是放风筝呢

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 @ 巴拉迪维:黑豹乐队的单曲《无地自容》 耳畔突然响起旋律,是那首老歌。中国摇滚有了《一无所有》不再一无所有;中国摇滚有了《无地自容》不...

小小编辑
57分钟前
65
1
《吐血整理》-顶级程序员书单集

你知道的越多,你不知道的越多 给岁月以文明,而不是给文明以岁月 前言 王潇:格局决定了一个人的梦想,梦想反过来决定行为。 那格局是什么呢? 格局是你能够看见的深度、广度和密度。 王潇认...

敖丙
2019/12/11
8
0
我可以在Android版式中加下划线吗? - Can I underline text in an Android layout?

问题: 如何在Android布局xml文件中定义带下划线的文本? 解决方案: 参考一: https://stackoom.com/question/A31z/我可以在Android版式中加下划线吗 参考二: https://oldbug.net/q/A31z/...

法国红酒甜
今天
26
0
干掉ELK | 使用Prometheus+Grafana搭建监控平台

什么是Prometheus? Prometheus是由SoundCloud开发的开源监控报警系统和时序列数据库(TSDB)。Prometheus使用Go语言开发,是Google BorgMon监控系统的开源版本。 Prometheus的特点 · 多维度...

木九天
今天
34
0
拉勾网拉你上勾

预览 需求简介 拉勾网是一个互联网行业的一个招聘网站,上面有许多职位,于是乎,小编想提取指定职位的基本信息(职位名,薪水,工作经验,工作地点,教育背景),然后插入 MongoDB 数据库,...

木下瞳
2019/04/17
20
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部