• 大小: 42.19MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-07-05
  • 语言: C#
  • 标签: SignalR  C#  

资源简介

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\description
     目录           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-rebase.sample
     文件         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.xml
     目录           0  2018-06-19 22:38  SignalRTest\.git\objects\
     目录           0  2018-06-19 22:38  SignalRTest\.git\objects\05\
     文件        5593  2018-06-19 22:38  SignalRTest\.git\objects\05\033349d52c6b433e29a1d8fab730d2146c84d8
     目录           0  2018-06-19 22:38  SignalRTest\.git\objects\0c\
............此处省略942个文件信息

评论

共有 条评论