Microsoft.AspNet.SignalR.2.4.0 Microsoft.AspNet.SignalR.Core.2.4.0

时间:2022-04-16 02:33:19
【文件属性】:
文件名称:Microsoft.AspNet.SignalR.2.4.0 Microsoft.AspNet.SignalR.Core.2.4.0
文件大小:479KB
文件格式:ZIP
更新时间:2022-04-16 02:33:19
Signal c# .net asp.ne websoc using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using System.Web; namespace SignalR.通讯 { public class iHub : iHubBase { public override Task OnConnected() { // 查询用户 var user = 自我意识.你们.SingleOrDefault(u => u.ContextId == Context.ConnectionId); if (user != null) return base.OnConnected(); user = new 线程(Context.ConnectionId); user.目的 += User_目的事件; 自我意识.你们.Add(user); Clients.Client(Context.ConnectionId).addMessage("请输入用户姓名 ", Context.ConnectionId); return base.OnConnected(); } private void User_目的事件(object sender, 目的事件参数 e) { var user = (线程)sender; if (e.类型 == 目的事件类型.说话) { if (user != null) { Clients.Client(user.ContextId).addMessage("电脑说:" + e.参一+ e.参二, user.ContextId); } } else if (e.类型 == 目的事件类型.学习 || e.类型 == 目的事件类型.认知) { Clients.Client(user.ContextId).doclass(e.参一, e.参二); } else if (e.类型 == 目的事件类型.意识) { Clients.Client(user.ContextId).addIdea(e.参一, e.参二); } } /// /// 获取用户名和自己的唯一编码 /// public void GetName(string 姓名) { // 查询用户。 var user = 自我意识.你们.SingleOrDefault(u => u.ContextId == Context.ConnectionId); if (user != null) { user.姓名 = 姓名; Clients.Client(Context.ConnectionId).showNameAndId(user.姓名, Context.ConnectionId); //读取用户个性数据 } GetOnlineUserList(); } public override Task OnReconnected() { // 查询用户 var user = 自我意识.你们.SingleOrDefault(u => u.ContextId == Context.ConnectionId); if (user != null) return base.OnReconnected(); user = new 线程(Context.ConnectionId); user.目的 += User_目的事件; 自我意识.你们.Add(user); //自动重新登陆 Clients.Client(Context.ConnectionId).addMessage("重新连接。。。 ", Context.ConnectionId); GetOnlineUserList(); return base.OnReconnected(); } /// /// 重写断开连接事件 /// 用户断开连接后,需要移除在线人们 /// /// /// public override Task OnDisconnected(bool stopCalled) { var user = 自我意识.你们.FirstOrDefault(u => u.ContextId == Context.ConnectionId); //判断用户是否存在,存在则删除 if (user != null) { 自我意识.你们.Remove(user); } //更新所有用户的列表 GetOnlineUserList(); return base.OnDisconnected(stopCalled); } /// /// 获取所有在线用户 /// public void GetOnlineUserList() { // var item = from a in 自我意识.人们 select new { a.印象.姓名, a.ContextId }; //var jsondata = JsonConvert.SerializeObject(item.ToList()); // Clients.All.getOnlineUserlist(jsondata);// 调用客户端的getOnlineUserlist来获得在线人们 } /// /// 发送消息 /// /// 发送给用户的ContextId /// 发送的消息内容 public void SendMessage(string contextId, string message) { 线程 你 = 自我意识.你们.FirstOrDefault(u => u.ContextId == Context.ConnectionId); /* // 判断用户是否存在,存在则发送 if (user != null) { // 1V1 聊天,需要把消息往这2个客户端发送 // 给指定用户发送,把自己的ID传过去 // Clients.Client(contextId).addMessage(message + " " + DateTime.Now, Context.ConnectionId); // 给自己发送,把用户的ID传给自己 Clients.Client(Context.ConnectionId).addMessage(message + " " + DateTime.Now, contextId); } else { // Clients.Client(Context.ConnectionId).showMessage("该用户已离线"); } */ if (你 == null) { //重新连接 } if (你.姓名.Equals(string.Empty)) { GetName(message); Clients.Client(Context.ConnectionId).addMessage("用户" + 你.姓名 + "你好", contextId); } else { Clients.Client(Context.ConnectionId).addMessage(你.姓名 + ":" + message + " " + DateTime.Now, contextId); //开始正式聊天 你.输入(message); } } } }
【文件预览】:
Microsoft.AspNet.SignalR.2.4.0
----Microsoft.AspNet.SignalR.2.4.0.nupkg(21KB)
----.signature.p7s(18KB)
Microsoft.AspNet.SignalR.Core.2.4.0
----lib()
--------net45()
----.signature.p7s(18KB)
----Microsoft.AspNet.SignalR.Core.2.4.0.nupkg(242KB)

网友评论