标签:
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; } }
标签:
原文地址:http://www.cnblogs.com/LQBlog/p/5939672.html