🐛 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 try
{ {
var endpoint = packet.Endpoint.Replace("DysonNetwork.", "").ToLower(); var endpoint = packet.Endpoint.Replace("DysonNetwork.", "").ToLower();
await _nats.PublishAsync(WebSocketPacketEvent.SubjectPrefix + endpoint, new WebSocketPacketEvent await _nats.PublishAsync(
{ WebSocketPacketEvent.SubjectPrefix + endpoint,
AccountId = Guid.Parse(currentUser.Id), GrpcTypeHelper
DeviceId = deviceId, .ConvertObjectToByteString(new WebSocketPacketEvent
PacketBytes = packet.ToBytes() {
}); AccountId = Guid.Parse(currentUser.Id),
DeviceId = deviceId,
PacketBytes = packet.ToBytes()
}).ToBase64()
);
return;
} }
catch (Exception ex) catch (Exception ex)
{ {

View File

@@ -173,12 +173,13 @@ public class BroadcastEventHandler(
private async Task HandleWebSocketPackets(CancellationToken stoppingToken) 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)) WebSocketPacketEvent.SubjectPrefix + "sphere", cancellationToken: stoppingToken))
{ {
try 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); var packet = WebSocketPacket.FromBytes(evt.PacketBytes);
switch (packet.Type) switch (packet.Type)
{ {