本文章完整免费视频讲解地址:

Azure SignaIR-向各种客户端实时推送

常规的推送技术:Websocket /服务器发送事件 (SSE) /长轮询等其他技术。

SignaIR存在了很长的历史了,是.NET 平台最常用的推送技术,现在这个技术已经以Paas形式上线到了Azure 中国的 东部2 区域,而且支持C#/Java/JavaScript/Python等多种语言。

Azure SignalR 服务已在各种行业中使用,适用于需要实时内容更新的任何应用类型。 下面是适合使用 Azure SignalR 服务的一些示例:

  • 高频率数据更新: 游戏、投票、轮询、竞拍。

  • 仪表板和监视: 公司仪表板、金融市场数据、即时销量更新、多玩家游戏排行榜和 IoT 监视。

  • 聊天: 实时聊天室、聊天机器人、在线客户支持、实时购物助手、信使、游戏内聊天,等等。

  • 地图实时定位: 物流跟踪、交货状态跟踪、运输状态更新、GPS 应用。

  • 实时定向广告: 个性化的实时推送广告和套餐、交互式广告。

  • 协作式应用: 共同著作、白板应用和团队会议软件。

  • 推送通知: 社交网络、电子邮件、游戏、行程通知。

  • 实时广播: 实时音频/视频广播、实时字幕、翻译、活动/新闻广播。

  • IoT 和互联设备: 实时 IoT 指标、远程控制、实时状态和位置跟踪。

  • 自动化: 基于上游事件的实时触发器。

案例:使用Azrue Functions和Azure SignaIR开发广播型聊天室

后端Functions的示例代码:

https://github.com/Azure-Samples/signalr-service-quickstart-serverless-chat

前端示例代码:

https://azure-samples.github.io/signalr-service-quickstart-serverless-chat/demo/chat-v2/

广播:

[FunctionName("SendMessage")]
public static Task SendMessage([HttpTrigger(AuthorizationLevel.Anonymous, "post")]object message, [SignalR(HubName = "chat")]IAsyncCollector<SignalRMessage> signalRMessages)
{return signalRMessages.AddAsync(new SignalRMessage {Target = "newMessage", Arguments = new [] { message } });
}

单播:

[FunctionName("SendMessage")]
public static Task SendMessage([HttpTrigger(AuthorizationLevel.Anonymous, "post")]object message, [SignalR(HubName = "chat")]IAsyncCollector<SignalRMessage> signalRMessages)
{return signalRMessages.AddAsync(new SignalRMessage {// the message will only be sent to this user IDUserId = "userId1",Target = "newMessage",Arguments = new [] { message }});
}

组播:

[FunctionName("SendMessage")]
public static Task SendMessage([HttpTrigger(AuthorizationLevel.Anonymous, "post")]object message,[SignalR(HubName = "chat")]IAsyncCollector<SignalRMessage> signalRMessages)
{return signalRMessages.AddAsync(new SignalRMessage{// the message will be sent to the group with this nameGroupName = "myGroup",Target = "newMessage",Arguments = new [] { message }});
}

使用 Azure SignalR 服务的优势是什么?

提供一致的消息推送标准:

SignalR 提供用于生成实时 Web 应用程序的多种技术的抽象概念。 Websocket 是最佳传输,但在其他选项不可用时,则使用服务器发送事件 (SSE) 和长轮询等其他技术。 基于服务器和客户端上受支持的功能,SignalR 自动检测并初始化合适的传输。

本机 ASP.NET Core 支持:

SignalR 服务通过 ASP.NET Core 和 ASP.NET 提供本机编程体验。 使用 SignalR 服务开发新的 SignalR 应用程序,或者从基于现有 SignalR 的应用程序迁移到 SignalR 服务只需付出少量的精力。 SignalR 服务还支持 ASP.NET Core 的新功能:服务器端 Blazor。

广泛的客户端支持:

SignalR 服务适用于广泛的客户端,例如 Web 和移动浏览器、桌面应用、移动应用、服务器进程、IoT 设备和游戏控制台。 SignalR 服务以不同的语言提供 SDK。 除了本机 ASP.NET Core 或 ASP.NET C# SDK 以外,SignalR 服务还提供 JavaScript 客户端 SDK 来支持 Web 客户端和许多 JavaScript 框架。

Java 客户端 SDK 还支持 Java 应用程序,包括 Android 本机应用。 SignalR 服务支持 REST API,与 Azure Functions 和事件网格集成后无需服务器。

处理大规模客户端连接:

SignalR 服务是针对大规模实时应用程序设计的。 SignalR 服务允许多个实例配合工作,扩展到数百万个客户端连接。 该服务还支持多个全局区域,以实现分片、高可用性或灾难恢复目的。

消除了自承载 SignalR 的负担:

与自承载 SignalR 应用程序相比,改用 SignalR 服务后,无需管理用于处理规模和客户端连接的后端平面。 完全托管的服务还简化了 Web 应用程序并节省了托管成本。 SignalR 服务覆盖全球,提供一流的数据中心和网络,可扩展到数百万个连接,附带 SLA 保障,并且符合 Azure 的所有合规与安全标准。

为不同的消息传送模式提供丰富的 API:

SignalR 服务允许服务器将消息发送到特定的连接、所有连接或属于特定用户或已放置在任意组中的连接子集。

参考费用:

Azure SignaIR 将数据从服务器实时推送到Web 和移动浏览器、桌面应用、移动应用等客户端相关推荐

  1. nodejs mysql数据推送_使用Nodejs实现实时推送MySQL数据库最新信息到客户端

    下面我们要做的就是把MySQL这边一张表数据的更新实时的推送到客户端,比如MySQL这边表的数据abc变成123了,那使用程序就会把最新的123推送到每一个连接到服务器的客户端.如果服务器的连接的客户 ...

  2. 服务器主动推送消息数据给客户端

    1 引言 这个问题第一次是我在实现一个导师的方案的时候所发现的,一开始我需要实现服务器与客户端的密钥协商和数据传递,服务器需要主动分发(推送)密钥给客户端,因为以前没有做过相关编码,后来只能想到用反向 ...

  3. ASP.NET Core 使用SignalR后台实时推送数据给Echarts展示图表

    什么是 SignalR ASP.NET Core ASP.NET Core SignalR 是一种开放源代码库,可简化将实时 web 功能添加到应用程序的功能. 实时 web 功能使服务器端代码可以立 ...

  4. websocket实现GPS数据的实时推送与地图的展示(优化)

    概述 前两天,发布了一片文章websocket实现GPS数据的实时推送与地图的展示,文章发出后引来了不少读者的关注,也有不少读者要求做进步一优化.本文应大家的要求,对上文的内容做一个优化,优化地方包括 ...

  5. 消息推送服务器推pc,PC浏览器消息实时推送的解决方案 ——EPush推送平台

    原标题:PC浏览器消息实时推送的解决方案 --EPush推送平台 陈华 研发工程师,2014入职去哪儿网.参与研发的EPush推送平台,增强了订单推送的时效性,提高了酒店自助订单处理率.最近负责CEQ ...

  6. 服务器 主动 推送 客户端浏览器 消息***

    前言 通常情况下,无论是web浏览器还是移动app,我们与服务器之间的交互都是主动的,客户端向服务器端发出请求,然后服务器端返回数据给客户端,客户端浏览器再将信息呈现,客户端与服务端对应的模式是: 客 ...

  7. WEB 实时推送技术总结

    前言 随着 Web 的发展,用户对于 Web 的实时推送要求也越来越高 ,比如,工业运行监控.Web 在线通讯.即时报价系统.在线游戏等,都需要将后台发生的变化主动地.实时地传送到浏览器端,而不需要用 ...

  8. html站内消息列表,WebSocket实现站内消息实时推送

    关于WebSocket WebSocket是HTML5 开始提供的一种在单个TCP连接上进行全双工通讯的协议.什么是全双工?就是在同一时间可以发送和接收消息,实现双向通信,比如打电话.WebSocke ...

  9. Web 实时推送技术如何弥补 HTTP 协议的缺陷? | 技术头条

    作者 | 浪里行舟 责编 | 郭芮 人工智能的现状及今后发展趋势如何?  https://edu.csdn.net/topic/ai30?utm_source=csdn_bw 随着 Web 的发展,用 ...

最新文章

  1. php+我的第一个程序,2. 第一个 C 程序
  2. python解释器的安装步骤-Python本地及虚拟解释器配置过程解析
  3. python 无序表查找
  4. OpenCASCADE绘制测试线束:几何命令之展示
  5. Django安装与使用
  6. JS中定时器setTimeout,setInterval,clearTimeout,clearInterval用法
  7. Storm 的可靠性保证测试
  8. 将信息系学生的计算机文化学,计算机等级考试(国家)-关系数据库操作语言sql(四)...
  9. 跳槽,你的工作经验货真价实吗?
  10. c语言 while(cin),C++中while(cina)是什么意思
  11. Comet服务器推送与SignalR
  12. 一口气发布11项新升级,免费送出1亿元算力:国产深度学习平台PaddlePaddle大更新...
  13. java整型_java整型数值
  14. 同一工作组计算机无法查看,win7系统在同一个工作组看不到其他电脑怎么回事?...
  15. 镜头光晕是如何形成的?
  16. c语言 表盘指针旋转,请教下,表盘指针图片旋转 ??
  17. SkyWalking Agent数据采集和上报原理浅析
  18. 离散数学(二):命题公式的等值演算
  19. 大数据和云计算发展前景怎样?
  20. 2022-2027年中国婚纱礼服行业市场全景评估及发展战略规划报告

热门文章

  1. 暴力破解工具Hydra
  2. python+OpenCV 相机标定
  3. MO,MT,Linkid的关系是什么
  4. 谷歌Analytics(分析)跳出率 - 到底什么意思
  5. 关于同步开关电源和异步开关电源
  6. 阿里巴巴开发手册——集合
  7. 提高IT专业人员薪酬水平的十种方法
  8. 员工离职倾向分析,太可怕了!
  9. 原型链的继承都发生在构造函数上
  10. 星志远:亚马逊开店怎么选择区域?