signalr

Serializing/deserializing derived objects in SignalR

若如初见. 提交于 2020-03-22 23:09:45
问题 I am using SignalR 1.1 with .NET clients. I have a single method in my hub that accepts an object of BaseMessage class and broadcasts it to all clients: public void SendMessage(BaseMessage message) { Clients.All.BroadCastMessage(message); } Clients will pass derived messages into this method: _hub.Invoke("SendMessage", new ErrorMessage("Some Error")).Wait(); The client has a single message handler: _hub.On<BaseMessage>("BroadCastMessage", OnMessageReceived); I've specified TypeNameHandling

ASP.NET Core的实时库: SignalR简介及使用

安稳与你 提交于 2020-03-19 10:05:59
大纲 本系列会分为2-3篇文章. 第一篇介绍了SignalR的预备知识和原理 本文介绍SignalR以及ASP.NET Core里使用SignalR . 本文的内容: 介绍SignalR 在ASP.NET Core中使用SignalR SignalR SignalR是一个.NET Core/.NET Framework的开源实时框架. SignalR的可使用Web Socket, Server Sent Events 和 Long Polling作为底层传输方式. SignalR基于这三种技术构建, 抽象于它们之上, 它让你更好的关注业务问题而不是底层传输技术问题. SignalR这个框架分服务器端和客户端, 服务器端支持ASP.NET Core 和 ASP.NET; 而客户端除了支持浏览器里的javascript以外, 也支持其它类型的客户端, 例如桌面应用. 回落机制 SignalR使用的三种底层传输技术分别是Web Socket, Server Sent Events 和 Long Polling. 其中Web Socket仅支持比较现代的浏览器, Web服务器也不能太老. 而Server Sent Events 情况可能好一点, 但是也存在同样的问题. 所以SignalR采用了回落机制, SignalR有能力去协商支持的传输类型. Web

ASP.NET Core SignalR (一):SignalR 概述

余生颓废 提交于 2020-03-18 12:21:22
此为系列文章,对MSDN ASP.NET Core SignalR 的官方文档进行系统学习与翻译。其中或许会添加本人对 ASP.NET Core 的浅显理解。 SignalR 是什么 ASP.NET Core SignalR是一个开源的库,其简化了向app添加实时web功能的操作。实时web功能使得服务端代码可以不断的向客户端推送内容。 SignalR的适用场景: 需要从服务器进行高频更新的apps,比如游戏,社交网络,选举,竞拍,地图以及GPS 程序。 面板以及监控程序。比如公司面板,持续的销售记录更新,以及旅行提示。 协作性的app。比如白板程序,团队会议软件都是协作性app的例子。 需要通知的app。社交网络,邮件,聊天,游戏,旅行提示以及其他许多app都需要通知功能。 SignalR提供了API用来创建服务端到客户端的RPC。RPCs从服务端的.NET Core 代码调用客户端的JavaScript 函数。 这里有一些ASP.NET Core SignalR的相关特性: 自动处理链接管理。 向所有已连接的客户端同时发送消息。比如,聊天室。 向特定的客户端或者分组发送消息。 可伸缩性以处理渐渐增加的访问压力。 其源码寄宿在 SignalR repository on GitHub 。 传输 SignalR支持如下的技术以处理实时连接(以优先使用的顺序排序):

vs2010 使用SignalR 提高B2C商城用户体验(二)

隐身守侯 提交于 2020-03-12 15:01:17
vs2010 使用SignalR 提高B2C商城用户体验(二)   上一节,已经实现了,当前域内的通信,这一节中,介绍一下跨域的即时通信,既然要做,我们肯定要把这个推送及聊天服务器做为一个单独的服务器,以方便扩展使用,这样就要使用跨域技术,既然基于ajax,那么跨域肯定是基于jsonp,下面我们介绍一下跨域的基本配置: 1、服务器的配置,我们打开项目中的Global.asax,在Application_Start中做如下配置: 1 protected void Application_Start() 2 { 3 var config = new HubConfiguration(); 4 config.EnableCrossDomain = true; 5 RouteTable.Routes.MapHubs(config); 6 AreaRegistration.RegisterAllAreas(); 7 8 WebApiConfig.Register(GlobalConfiguration.Configuration); 9 FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); 10 RouteConfig.RegisterRoutes(RouteTable.Routes); 11 12 } config

SignalR + MVC5 简单示例

孤者浪人 提交于 2020-03-12 04:07:24
原文: SignalR + MVC5 简单示例 本文和前一篇文章很类似,只不过是把 SignalR 应用在了 MVC 中 新建项目,选择 MVC 模板   安装 SignalR Install-Package Microsoft.AspNet.SignalR   在项目中添加文件夹 Hubs    在 Hubs 文件夹中添加 SignalR Hub Class (V2)   代码如下 using System; using System.Collections.Generic; using System.Linq; using System.Web; using Microsoft.AspNet.SignalR; namespace SignalRChatMVC5.Hubs { public class ChatHub : Hub { public void Send(string name, string message) { // Call the addNewMessageToPage method to update clients. Clients.All.addNewMessageToPage(name, message); } } }   添加 OWIN Startup Class   代码如下 using System; using System.Threading

ASP.NET SignalR 2.0入门指南

三世轮回 提交于 2020-03-10 10:30:46
介绍SignalR ASP.NET SignalR 是一个为 ASP.NET 开发人员的库,简化了将实时 web 功能添加到应用程序的过程。实时Web功能使服务端代码推送内容到链接可客服端并立即应用成为可能,而不需要服务端等待客户端去请求数据。 SignalR可用于任何你想添加实时Web功能到ASP.NET应用程序的情形,聊天室是一个常用的例子,用户可以刷新Web页面来获得新的数据,或者页面使用一个长轮询来取回数据,这都是SignalR可以应用的场景。比如说仪表盘和监视系统,实时游戏等。 SignalR支持以一种简单的API来创建服务器到客户端的远程调用客户端的Javascript方法,SignalR还包括用于用于连接管理的API和分组连接。 SignalR自动的处理连接管理,并允许你像一个聊天室那样同时向所有连接的客户端广播消息,你也可以向特定的客户端发送消息,在客户端和服务器之间的连接是持久的,不需要像传统的HTTP连接那样重建每一个连接。 SignalR支持服务器推送功能,在服务器中可以调用在浏览器中的客户端代码,而不是像当今的“请求-响应”模式。 SignalR可以通过服务总线扩展到数以千计的客户端,同时SignalR是开源的,可以用过 Github 访问到。 SignalR和WebSocket SignalR当WebSocket可用时优先使用新式的WebSocket传输

ASP.NET SignalR 与LayIM配合,轻松实现网站客服聊天室(三) 激动人心的时刻到啦,实现1v1聊天

不打扰是莪最后的温柔 提交于 2020-03-10 09:13:44
  看起来挺简单,细节还是很多的,好,接上一篇,我们已经成功连接singalR服务器了,那么剩下的内容呢,就是一步一步实现聊天功能。   我们先看看缺什么东西 点击好友弹框之后,要给服务器发消息,进入组Group.Group原理在上一篇已经介绍了,这里不再赘述。 点击发送消息到后台,后台在传送回来 将htmlappend到相应元素上,demo已经实现了,我们把代码拿过来用就可以了 模拟用户登录,点击发送聊天   在做上述工作之前,还是要做许多准备工作的。我们分析一下界面元素      好的,可以看到,一个消息里面有消息发送时间(addtime),用户名(username),用户头像(userphoto),用户消息体(msgcontent),除此之外还需要用户id,聊天id,以及组名(groupname).以此我先在后台建立模型。    namespace LayIM.Model { public enum CSMessageType { System = 1,//系统消息,出错,参数错误等消息 Custom = 2 //普通消息,对话,或者群组消息 } } namespace LayIM.Model { public class CSChatMessage { public CSChatMessage() { addtime = DateTime.Now.ToString("HH

how to take token from http client with signalr in blazor server app?

半腔热情 提交于 2020-03-03 07:29:23
问题 I using SignalR in my Blazor server app. I added services.AddSignalR() in startup.cs file. Then I can't take token. Because http context is null . Then I removed services.AddSignalR() from startup.cs file. it is normal working. Then i can take token from http client. How to solve it? Thank you. Startup.cs file: services .AddAuthentication(options => { options.DefaultScheme = "Cookies"; options.DefaultChallengeScheme = "oidc"; }) .AddCookie("Cookies") .AddOpenIdConnect("oidc", options => {

how to take token from http client with signalr in blazor server app?

被刻印的时光 ゝ 提交于 2020-03-03 07:29:06
问题 I using SignalR in my Blazor server app. I added services.AddSignalR() in startup.cs file. Then I can't take token. Because http context is null . Then I removed services.AddSignalR() from startup.cs file. it is normal working. Then i can take token from http client. How to solve it? Thank you. Startup.cs file: services .AddAuthentication(options => { options.DefaultScheme = "Cookies"; options.DefaultChallengeScheme = "oidc"; }) .AddCookie("Cookies") .AddOpenIdConnect("oidc", options => {

SignalR初试水

风流意气都作罢 提交于 2020-02-29 05:27:45
1.首先,新建了一个MVC的空项目SingnalR2 2.添加Nuget程序包(如图2-1) Microsoft.AspNet.SignalR(如图2-2)               图2-1                             图2-2 3.安装完会出现一个readme.txt(如图3-1),将里面的 Configuration 复制出来,在App_Start 文件夹里头,创建一个 Startup.cs( 如图3-2),代码 (如图3-3)                                       图3-1                              图3-2                                   图3-3 4.创建获取数据库链接串的类DB(如图4-1),记得配置Web.Config的数据库链接串(如图4-2)                                 图4-1                                       图4-2 5.配置Global.asax.cs(如图5-1)                                                 图5-1 6.创建数据库对象类TableA(如图6-1)