用SignalR 2.0开发客服系统[系列4:负载均衡的情况下使用SignalR]

.NetCore基于SignalR、Reids实现客服WebIM系统 WebIM客服系统,说明当前系统与自己的业务系统关联性不强。基于这个前提,最终把WebIM完善成了一个易接入、高度开放、不依赖于业务系统、支持接入多个业务系统的售后服务系统 阅读详情

前言

目录:

用SignalR 2.0开发客服系统[系列1:实现群发通讯]

用SignalR 2.0开发客服系统[系列2:实现聊天室]

用SignalR 2.0开发客服系统[系列3:实现点对点通讯]

SignalR 2.0作为一个新的而且强大的通信工具,发布博客之后得到了很多人的支持,谢谢...也有人对性能和架设等问题提出了各种质疑..真的很感谢..

我特意下载了SignalR 2.0的源码硬着头皮用我二流子的英语在微软官方的Demo里翻滚..

今天这个负载均衡下使用SignalR..基本完全照搬于微软的Demo,我就当翻译+上自己的理解吧   - -,  原文看这里:

使用SQL server实现持久化

http://www.asp.net/signalr/overview/performance/scaleout-with-sql-server

使用redis实现持久化

http://www.asp.net/signalr/overview/performance/scaleout-with-redis

今天我们主要讲使用SQL server..

开发环境

开发工具:VS2013 旗舰版

数据库:Sql Server2008

操作系统:WIN7旗舰版

正文开始

老规矩,我们先来看看实现后的效果:

做过负载均衡的应该一眼就能看出效果主要做的什么,这里我们就不做过多的解释了..

首先我们来看看微软给出的实现参考图:

使用的先决条件

Microsoft SQL Server 2005或更高版本。 它不支持SQL Server精简版或SQL Azure数据库。 (如果您的应用程序是托管在Azure,你懂的,考虑其他的版本代替吧.)

概述

详细的教程之前,这里是一个快速概述你将做什么。

  1. 创建一个新的空数据库。 集线器Hub将在这个数据库创建必要的表。
  2. 将这些NuGet包添加到您的应用程序:
  3. 创建一个SignalR应用程序。
  4. 添加以下代码来启动。 配置启动器(记得我们之前第一篇文章中的Owin么?)

下面就开始第一步

配置数据库:

首先我们来创建一个库为SignalRTable

如下图:

然后,打开数据库代理(这是微软给的建议,可不开,微软给出的原因是:服务代理提供本机支持SQL Server消息和队列,使其接收更新更有效率。)

可以使用SQL语句查询是否开启了数据库代理(新库默认是关闭的) SQL语句如下:

SELECT [name], [service_broker_guid], [is_broker_enabled]
FROM [master].[sys].[databases]

可以使用如下SQL语句开启你数据库的代理服务:

ALTER DATABASE 你的库名 SET ENABLE_BROKER
开始配置项目

我这里直接拿我的第一个Demo来配置了,首先你要引用

using Microsoft.AspNet.SignalR.SqlServer;

这个类库,..如果没有的话可以通过NuGet去下载.

任何Hub中的代码都不需要修改,上面我提到过,启动器Owin,我们这里直接进入到Owin中,加入如下代码:

using System;
using System.Threading.Tasks;
using Microsoft.Owin;
using Owin;
using Microsoft.AspNet.SignalR;
using Microsoft.AspNet.SignalR.SqlServer;
[assembly: OwinStartup(typeof(SignalRTest.MyStartup))]
namespace SignalRTest
{
  public class MyStartup
  {
    public void Configuration(IAppBuilder app)
    {
      //加入如下代码,Sqlconn为你的SQL数据库连接字符串.
      string sqlconn = "您的SQL数据库联接字符串";
      GlobalHost.DependencyResolver.UseSqlServer(sqlconn);
      //第一版Demo中我们一直只有这句代码.
      app.MapSignalR();
    }
  }
}

这样我们就完成了整个负载均衡情况下的配置.

谢谢大家的支持,我会做的更好..请大家对我二流子的英语多多包含 - -,感谢..希望能有更好的翻译出来.

Signalr即时通讯,聊天室 C#Signalr即时通讯,运行直接可以看效果。聊天室客服及时推送消息。 立即下载

相关推荐

asp.net core 使用SignalR推送消息

asp.net core 使用SignalR实现简单的消息推送: 1、简单在线聊天功能(推送消息给所有在线的客户端) 2、推送消息给指定用户(定向推送消息)

基于ASP.NET SignalR 实现的在线通讯(客服系统)

ASP.NET SignalR 是一个面向 ASP.NET 开发人员的库,可简化将实时 web 功能添加到应用程序的过程。实时 web 功能是让服务器代码将内容推送到连接的客户端立即可用,而不是让服务器等待客户端请求新数据的能力。 SignalR 可用于将任何类型的"实时"web 功能添加到 ASP.NET 应用程序。尽管聊天通常用作示例,您可以更为很多。只要用户刷新 web 页面以查看新...

lilin的专栏 1533

aspC# mvc版本Signalr即时通讯完整Demo

aspC# mvc版本Signalr即时通讯完整Demo

用SignalR 2.0开发客服系统[系列2:实现聊天室]

前言   交流群:195866844 上周发表了 用SignalR 2.0开发客服系统[系列1:实现群发通讯] 这篇文章,得到了很多帮助和鼓励,小弟在此真心的感谢大家的支持.. 这周继续系列2,实现聊天室的功能.     开发环境  开发工具:VS2013 旗舰版  数据库:未用  操作系统:WIN7旗舰版   正文开始 首先我们来看看最终效果:      ...

weixin_34062469的博客 254

在线客服聊天室(MVC5+Signalr)

文字聊天,表情,拖拽图片,上传图片,上传文件等功能,程序可以直接使用也可二次开发。程序请按照文档说明使用,不明白的可以发邮件(lm1134@yeah.net )当前为demo版本。希望能帮上各位同学

深入解析BlueZ5与D-Bus:Linux蓝牙开发实战指南

本文深入解析BlueZ5与D-Bus在Linux蓝牙开发中的核心应用,提供从环境搭建到实战开发的完整指南。通过详细代码示例和调试技巧,帮助开发者掌握蓝牙协议栈与D-Bus接口的交互方法,实现高效蓝牙设备管理与GATT服务开发。

weixin_28292761的博客 450

SignalR系列续集[系列6:使用自己的连接ID]

目录 SignalR系列目录 前言 老规矩,前言~,在此先道个歉,之前的1-5对很多细节问题都讲的不是很详细,也有很多人在QQ或者博客问我一些问题 所以,特开了这个续集.. - -, 讲一些大家在开发中遇到的问题和一些解决方案,今天就来说说经常被问到的,如何使用自己定义的连接ID. 之前我们说过,Signalr提供了唯一的连接ID 获取方法:Context.ConnectionId, ...

weixin_34212762的博客 680

告别交越失真:手把手教你设计高性能互补输出级电路(LTspice实测)

本文深入剖析音频放大器中常见的交越失真问题,并提供基于LTspice仿真的实战解决方案。通过对比二极管偏置、Vbe倍增器和集成运放驱动三种经典方案,手把手指导设计高性能互补输出级电路,涵盖原理分析、仿真验证及实物调试要点,助力消除音频失真,提升音质。

weixin_29190573的博客 552

点云语义分割入门:Ubuntu 20.04配置RangeNet++全流程与避坑指南

点云语义分割是自动驾驶与机器人感知中的核心技术,其目标是为每个三维点赋予语义标签。传统方法直接处理非结构化点云效率低下,而球面投影将稀疏点云映射为二维距离图,从而复用成熟的卷积网络,这一思路在RangeNet++中得到了典型实现。它通过编码器-解码器结构完成逐像素分割,并借助kNN后处理修正三维空间中的近邻关系,在Semantic KITTI基准上兼顾了实时性与精度。理解这一原理后,环境配置便有了明确方向:从显卡驱动、CUDA版本到TensorFlow与TensorRT的匹配,每一步都影响最终推理效果。本文

weixin_33957648的博客 212

从Mule ESB到Apache Camel:手把手教你设计一个轻量级企业集成框架的‘心脏’

本文深入探讨了从Mule ESB到Apache Camel的轻量级企业集成框架设计实践,对比了两者在协议支持、消息处理能力和部署灵活性等方面的差异。通过实际代码示例和性能优化技巧,帮助开发者构建高效的核心模块,适用于现代微服务架构下的系统集成需求。

weixin_28738165的博客 375

RAGFlow源码解析-2、从源码构架ragflow v0.25.0镜像

本文详细记录了从零开始构建自定义RAGFlow镜像lt/ragflow:0.25.0的全过程。首先介绍了环境准备,包括检查Node.js、Docker版本和项目结构。然后详细说明了构建步骤:编译前端、创建自定义Dockerfile、构建镜像和验证。接着讲解了docker-compose配置修改要点,包括网络定义、MySQL依赖处理等。最后总结了部署过程中遇到的五个关键问题及解决方案,包括networks未定义、MySQL服务依赖、tiktoken文件缺失、数据库配置错误和端口映射问题。通过完整的操作流程和问

liutao841204的专栏 364

用SignalR 2.0开发客服系统[系列5:使用SignalR的中文简体语言包和其他技术点]

前言 目录: 用SignalR 2.0开发客服系统[系列1:实现群发通讯] 用SignalR 2.0开发客服系统[系列2:实现聊天室] 用SignalR 2.0开发客服系统[系列3:实现点对点通讯] 用SignalR 2.0开发客服系统[系列4:负载均衡的情况下使用SignalR] 以上是系列目录,终于到了结束的时候了.... 为了这个系列

双鱼达摩 3020

innovus:如何在init design之后新增参考库(lib/lef)

如题,在PR过程中经常会遇到这种问题,时序无法收敛,需要新增一套lvt或者hpc的库,怎么办?

m0_61544122的博客 5008

中使用signalr_asp.net core 之 SignalR 负载均衡

SignalR : Web中的实时功能实现,所谓实时功能,就是所连接的客户端变的可用时,服务端能实时的推送内容到客户端,而不是被动的等待客户端的请求。Asp.net SignalR 源码 :https://github.com/SignalR/SignalR .net Core下源码地址:https://github.com/aspnet/SignalRasp.netco...

weixin_39843847的博客 725

AutoSAR系列讲解 - 前言

博主xyfx是一名汽车行业的嵌入式软件工程师,本职工作是同步电机的驱动控制(主要做FOC的,这个大家要是有兴趣,以后可以单独开一个专栏来讲解一下),由于做控制器的时候需要用到AutoSAR,所以特意的去学习了相关知识,同时博主自己也在同步提高中,有写的不合理的地方也请大家指正。我准备对AutoSAR开设两个大的方面来讲解,一是AutoSAR的入门篇,二是AutoSAR的实践篇,分别讲述AutoSAR的理论基础和工具的使用。

雪云飞星的博客 4万+

万字长文解密:SAP Fiori 首屏加载缓慢背后的真相

什么是一个健康理想的 Fiori 首次加载状态?FLP 首页不臃肿,用户默认看见的内容不多但足够用缓存作业按规则运行,冷启动不至于每次都从零开始应用首屏只读必要数据,UI5 资源经过 preload,视图异步加载OData 服务字段克制、分页合理、缓存分层清楚后台 CDS 与 HANA 只为当前屏幕做最必要的工作。只要这些标准同时满足,用户第一次打开 Fiori 页面的体感通常会从明显卡顿变成可接受甚至顺滑。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 557
上一篇: 用SignalR 2.0开发客服系统[系列3:实现点对点通讯]
下一篇: 用SignalR 2.0开发客服系统[系列5:使用SignalR的中文简体语言包和其他技术点]
双鱼达摩
博客等级 码龄18年 8粉丝 4原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值