🐛 Fix websocket gateway

This commit is contained in:
2025-09-22 00:13:43 +08:00
parent 204640a759
commit d5a5721402
2 changed files with 15 additions and 9 deletions

View File

@@ -141,12 +141,17 @@ public class WebSocketService
try
{
var endpoint = packet.Endpoint.Replace("DysonNetwork.", "").ToLower();
await _nats.PublishAsync(WebSocketPacketEvent.SubjectPrefix + endpoint, new WebSocketPacketEvent
{
AccountId = Guid.Parse(currentUser.Id),
DeviceId = deviceId,
PacketBytes = packet.ToBytes()
});
await _nats.PublishAsync(
WebSocketPacketEvent.SubjectPrefix + endpoint,
GrpcTypeHelper
.ConvertObjectToByteString(new WebSocketPacketEvent
{
AccountId = Guid.Parse(currentUser.Id),
DeviceId = deviceId,
PacketBytes = packet.ToBytes()
}).ToBase64()
);
return;
}
catch (Exception ex)
{

View File

@@ -173,12 +173,13 @@ public class BroadcastEventHandler(
private async Task HandleWebSocketPackets(CancellationToken stoppingToken)
{
await foreach (var msg in nats.SubscribeAsync<WebSocketPacketEvent>(
await foreach (var msg in nats.SubscribeAsync<byte[]>(
WebSocketPacketEvent.SubjectPrefix + "sphere", cancellationToken: stoppingToken))
{
try
{
var evt = msg.Data;
var evt = JsonSerializer.Deserialize<WebSocketPacketEvent>(msg.Data, GrpcTypeHelper.SerializerOptions);
if (evt == null) throw new ArgumentNullException(nameof(evt));
var packet = WebSocketPacket.FromBytes(evt.PacketBytes);
switch (packet.Type)
{