コード例 #1
0
        public void MessageJob(CancellationToken token)
        {
            Trace.WriteLine(DateTime.Now.ToString() + " test1 start");
            string appId = ApplicationConfigUtil.GetAppSeting("WebSocketServer", "WsPath");

            WebSocketProxyAgent.Initialization(ApplicationConfigUtil.GetAppSeting("WebSocketServer", "CSRedisClient"),
                                               appId);

            int           Status    = (int)MessageStatusEumns.Ready;
            List <string> AppIdList = new List <string>()
            {
                appId
            };
            long Count = DataHandleManager.Instance().RtMessageHandle.CountRtMessage(Status, DefaultTimeOutSecond, AppIdList);

            if (Count > 0)
            {
                List <RtMessage> MessageList = DataHandleManager.Instance().RtMessageHandle.GetRtMessageList(Status, DefaultTimeOutSecond, AppIdList);
                if (!CollectionUtils.IsEmpty(MessageList))
                {
                    foreach (var message in MessageList)
                    {
                        string      clientRedisKey = RedisUtil.GetUserIdRedisKey(message.AppId, message.UserId);
                        string      SessionId      = RedisUtil.GetWebSocketSessionID(clientRedisKey);
                        List <Guid> receiveList    = new List <Guid>()
                        {
                            new Guid(SessionId)
                        };
                        WebSocketNotifications notifications = new WebSocketNotifications()
                        {
                            SenderSessionId   = Guid.Empty,
                            ReceiveSessionIds = receiveList,
                            Message           = message.Message,
                            Receipt           = true,
                            NotificationTag   = message.id
                        };
                        WebSocketProxyAgent.SendMessage(notifications);
                    }
                }
            }
            Trace.WriteLine(DateTime.Now.ToString() + " test1 end");
        }
コード例 #2
0
 public ActionResult <JsonResponses> SendMessage([FromForm] Guid senderWebsocketId, [FromForm] Guid receiveWebsocketId, [FromForm] string message, [FromForm] bool isReceipt = false)
 {
     WebSocketProxyAgent.SendMessage(senderWebsocketId, new[] { receiveWebsocketId }, message, isReceipt);
     return(JsonResponses.Success);
 }