public async Task BroadcastJsonMessage(string jsonMessage) { try { WebSocketItem webSocketItem = JsonConvert.DeserializeObject <WebSocketItem>(jsonMessage); Clients.All.broadcastMessage(webSocketItem.Name, webSocketItem.Message); foreach (var client in WebSocketClients) { await client.Value.webSocket.SendAsync(new ArraySegment <byte>(Encoding.UTF8.GetBytes(jsonMessage)), WebSocketMessageType.Text, true, CancellationToken.None); } } catch (Exception) { } }
public Task BroadcastMessage(string name, string message) { WebSocketItem webSocketItem = new WebSocketItem { Command = WebSocketCommand.ChatMsg, Name = name, Message = message }; // ref: https://www.newtonsoft.com/json/help/html/NamingStrategyCamelCase.htm (200828) DefaultContractResolver contractResolver = new DefaultContractResolver { NamingStrategy = new CamelCaseNamingStrategy() }; string jsonStr = JsonConvert.SerializeObject(webSocketItem, new JsonSerializerSettings { ContractResolver = contractResolver, Formatting = Formatting.Indented }); return(BroadcastJsonMessage(jsonStr)); }