예제 #1
0
        public virtual Task SendAsync(SocketsMessage message)
        {
            if (message is null)
            {
                return(Task.CompletedTask);
            }

            if (message.Client == ClientName || string.IsNullOrWhiteSpace(ClientName) ||
                string.IsNullOrWhiteSpace(message.Client))
            {
                using MemoryStream memoryStream = new();
                _jsonSerializer.Serialize(memoryStream, new { type = message.Type, client = ClientName, data = message.Data });
                if (memoryStream.TryGetBuffer(out ArraySegment <byte> data))
                {
                    return(_handler.SendRawAsync(data));
                }
            }

            return(Task.CompletedTask);
        }