signalr服务端

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了signalr服务端相关的知识,希望对你有一定的参考价值。

signalr 支持 iis托管、winform、windowsservices、wpf 托管 这里我采用winfrom托管

首先画一个这样的窗体

技术分享

在服务项目通过项目管理包安装signalr类库

技术分享

安装后 如果客户端是web程序 则将js移动到客户端 编写客户端的时候使用

技术分享

这次我安装缺少一个技术分享 程序集 我在官网下载手动引用上去了

新建一个类 该类用于自定义找到signalr回话的id  默认是随机的一个guid维护。。实现这个类 就可以根据用户id 直接发送给指定用户

  /// <summary>
    /// 自定义维护每个用户会话id的实现类
    /// </summary>
    public class UserIdProvider:IUserIdProvider
    {
        public string GetUserId(IRequest request)
        {
            return request.QueryString["Uid"];
        }
    }

新建一个signalr启动类。并将自定义维护会话注入

 public class Startup
    {
       public void Configuration(IAppBuilder app)
       {
           //注入signlar自定义维护会话id
           GlobalHost.DependencyResolver.Register(typeof(IUserIdProvider), () => new UserIdProvider());
           app.UseCors(CorsOptions.AllowAll);
           app.MapSignalR();
       }
    }

新建一个服务器的在线用户信息管理类

 /// <summary>
    /// 在线用户信息管理类
    /// </summary>
    public class User
    {
        /// <summary>
        /// 用户id
        /// </summary>
        public string Uid { get; set; }

        /// <summary>
        /// 用户名字
        /// </summary>
        public string UName { get; set; }

        /// <summary>
        /// 上线时间
        /// </summary>
        public DateTime Date { get; set; }

        /// <summary>
        /// 头像
        /// </summary>
        public string HeadPath { get; set; }


        /// <summary>
        /// 当前用户所在机构id
        /// </summary>
        public string OrganId{ get; set; }

        /// <summary>
        /// 当前用户所在部门id
        /// </summary>
        public string Depid { get; set; }
    }

 

以上是关于signalr服务端的主要内容,如果未能解决你的问题,请参考以下文章

使用SignalR从服务端主动推送警报日志到各种终端(桌面移动网页)

.net core 3.0 Signalr - 09 待改进&交流

SignalR入门之多平台SignalR服务端

.net core 3.0 Signalr - 07 业务实现-服务端 自定义管理组用户连接

基于SignalR的服务端和客户端通讯处理

signalr服务端