Files
HellionChat/ChatTwo/Http/MessageProtocol/OutgoingMessage.cs
T

22 lines
721 B
C#

using System.Text;
using Newtonsoft.Json;
namespace ChatTwo.Http.MessageProtocol;
public class CloseEvent() : BaseEvent("close");
public class SwitchChannelEvent(SwitchChannel switchChannel) : BaseEvent("switch-channel", JsonConvert.SerializeObject(switchChannel));
public class NewMessageEvent(Messages messages) : BaseEvent("new-message", JsonConvert.SerializeObject(messages));
public class BaseEvent(string eventType, string? data = null)
{
private string Event = eventType;
private string Data = data ?? "0"; // SSE requires data on each response
public byte[] Build()
{
// SSE always ends with \n\n
return Encoding.UTF8.GetBytes($"event: {Event}\ndata: {Data}\n\n");
}
}