資源簡介
SignalR Winform服務端、客戶端實現,附帶web端調用Demo。案例包含了永久連接以及集線器兩種實現方式,以及web端調用、窗體程序下調用方式實現
代碼片段和文件信息
using?System;
using?System.Collections.Generic;
using?System.Diagnostics;
using?System.Linq;
using?System.Security.Principal;
using?System.Text;
using?System.Threading.Tasks;
using?Microsoft.AspNet.SignalR;
using?Microsoft.AspNet.SignalR.Hosting;
using?Microsoft.AspNet.SignalR.Hubs;
namespace?SignalRService
{
????[HubName(“ChatsHub“)]
????public?class?ChatsHub?:?Hub
????{
????????#region?測試代碼
????????///?
????????///?向所有客戶端發送消息
????????///?
????????///?
????????public?async?Task?Send(string?message)
????????{
????????????try
????????????{
????????????????//當前連接ID
????????????????string?connId?=?Context.ConnectionId;
????????????????//?調用所有客戶端的SendMessage方法
????????????????ChatMessageDTO?msg?=?new?ChatMessageDTO
????????????????{
????????????????????SendId?=?connId
????????????????????SendUserName?=?““
????????????????????Content?=?message
????????????????????CreateDate?=?DateTime.Now
????????????????};
????????????????message?=?connId?+?“發送內容>>“?+?message;
????????????????Console.WriteLine(message);
????????????????await?Clients.All.SendMessage(msg);
????????????}
????????????catch?(Exception?e)
????????????{
????????????????throw?new?HubException(“發送消息發生異常.“?new?{?message?=?e.Message?});
????????????}
????????}
????????#endregion
????????
????????private?class?ChatMessageDTO
????????{
????????????///?
????????????///?發送人ID
????????????///?
????????????public?string?SendId?{?get;?set;?}
????????????///?
????????????///?發送方姓名
????????????///?
????????????public?string?SendUserName?{?get;?set;?}
????????????///?
????????????///?內容
????????????///?
????????????public?string?Content?{?get;?set;?}
????????????///?
????????????///?創建時間
????????????///?
????????????public?DateTime?CreateDate?{?get;?set;?}
????????}
????????#region?默認事件
????????///?
????????///?客戶端連接的時候調用
????????///?
????????///?
????????public?override?Task?OnConnected()
????????{
????????????//string?userId?=?ClientQueryString[“userId“];
????????????Trace.WriteLine(“客戶端連接成功,連接ID是:?“?+?Context.ConnectionId);
????????????return?base.OnConnected();
????????}
????????///?
????????///?客戶端斷開連接的時候調用
????????///?
????????///?
????????///?
????????public?override?Task?OnDisconnected(bool?stopCalled)
????????{
????????????Trace.WriteLine($“客戶端[{Context.ConnectionId}]斷開連接“);
????????????return?base.OnDisconnected(true);
????????}
????????///?
????????///?客戶端重新連接的時候調用
????????///?
????????///?
????????public?override?Task?OnReconnected()
????????{
????????????Trace.WriteLine($“客戶端[{Context.ConnectionId}]正在重新連接“);
????????????return?base.OnReconnected();
????????}
????????#endregion
????}
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-06-20?22:12??SignalRTest\
?????目錄???????????0??2018-06-19?22:38??SignalRTest\.git\
?????文件??????????22??2018-06-19?22:38??SignalRTest\.git\COMMIT_EDITMSG
?????文件??????????23??2018-06-19?22:38??SignalRTest\.git\HEAD
?????文件?????????726??2018-06-19?22:38??SignalRTest\.git\config
?????文件??????????73??2018-06-19?22:38??SignalRTest\.git\desc
?????目錄???????????0??2018-06-19?22:38??SignalRTest\.git\hooks\
?????文件?????????478??2018-06-19?22:38??SignalRTest\.git\hooks\applypatch-msg.sample
?????文件?????????896??2018-06-19?22:38??SignalRTest\.git\hooks\commit-msg.sample
?????文件????????3327??2018-06-19?22:38??SignalRTest\.git\hooks\fsmonitor-watchman.sample
?????文件?????????189??2018-06-19?22:38??SignalRTest\.git\hooks\post-update.sample
?????文件?????????424??2018-06-19?22:38??SignalRTest\.git\hooks\pre-applypatch.sample
?????文件????????1642??2018-06-19?22:38??SignalRTest\.git\hooks\pre-commit.sample
?????文件????????1348??2018-06-19?22:38??SignalRTest\.git\hooks\pre-push.sample
?????文件????????4898??2018-06-19?22:38??SignalRTest\.git\hooks\pre-reba
?????文件?????????544??2018-06-19?22:38??SignalRTest\.git\hooks\pre-receive.sample
?????文件????????1239??2018-06-19?22:38??SignalRTest\.git\hooks\prepare-commit-msg.sample
?????文件????????3610??2018-06-19?22:38??SignalRTest\.git\hooks\update.sample
?????文件????????4993??2018-06-19?22:38??SignalRTest\.git\index
?????目錄???????????0??2018-06-19?22:38??SignalRTest\.git\info\
?????文件?????????240??2018-06-19?22:38??SignalRTest\.git\info\exclude
?????目錄???????????0??2018-06-19?22:38??SignalRTest\.git\logs\
?????文件?????????342??2018-06-19?22:38??SignalRTest\.git\logs\HEAD
?????目錄???????????0??2018-06-19?22:38??SignalRTest\.git\logs\refs\
?????目錄???????????0??2018-06-19?22:38??SignalRTest\.git\logs\refs\heads\
?????文件?????????342??2018-06-19?22:38??SignalRTest\.git\logs\refs\heads\master
?????文件?????????150??2018-06-19?22:38??SignalRTest\.git\ms-persist.xm
?????目錄???????????0??2018-06-19?22:38??SignalRTest\.git\ob
?????目錄???????????0??2018-06-19?22:38??SignalRTest\.git\ob
?????文件????????5593??2018-06-19?22:38??SignalRTest\.git\ob
?????目錄???????????0??2018-06-19?22:38??SignalRTest\.git\ob
............此處省略942個文件信息
評論
共有 條評論