🐛 Fixes in websocket push

This commit is contained in:
2025-07-29 22:22:56 +08:00
parent 03b4b7f3b9
commit 11266ac69a

View File

@@ -31,7 +31,7 @@ public class PusherServiceGrpc(
var packet = new Connection.WebSocketPacket var packet = new Connection.WebSocketPacket
{ {
Type = request.Packet.Type, Type = request.Packet.Type,
Data = request.Packet.Data, Data = GrpcTypeHelper.ConvertByteStringToObject<Dictionary<string, object?>>(request.Packet.Data),
ErrorMessage = request.Packet.ErrorMessage ErrorMessage = request.Packet.ErrorMessage
}; };
websocket.SendPacketToAccount(request.UserId, packet); websocket.SendPacketToAccount(request.UserId, packet);
@@ -44,7 +44,7 @@ public class PusherServiceGrpc(
var packet = new Connection.WebSocketPacket var packet = new Connection.WebSocketPacket
{ {
Type = request.Packet.Type, Type = request.Packet.Type,
Data = request.Packet.Data, Data = GrpcTypeHelper.ConvertByteStringToObject<Dictionary<string, object?>>(request.Packet.Data),
ErrorMessage = request.Packet.ErrorMessage ErrorMessage = request.Packet.ErrorMessage
}; };
foreach (var userId in request.UserIds) foreach (var userId in request.UserIds)
@@ -59,7 +59,7 @@ public class PusherServiceGrpc(
var packet = new Connection.WebSocketPacket var packet = new Connection.WebSocketPacket
{ {
Type = request.Packet.Type, Type = request.Packet.Type,
Data = request.Packet.Data, Data = GrpcTypeHelper.ConvertByteStringToObject<Dictionary<string, object?>>(request.Packet.Data),
ErrorMessage = request.Packet.ErrorMessage ErrorMessage = request.Packet.ErrorMessage
}; };
websocket.SendPacketToDevice(request.DeviceId, packet); websocket.SendPacketToDevice(request.DeviceId, packet);
@@ -72,7 +72,7 @@ public class PusherServiceGrpc(
var packet = new Connection.WebSocketPacket var packet = new Connection.WebSocketPacket
{ {
Type = request.Packet.Type, Type = request.Packet.Type,
Data = request.Packet.Data, Data = GrpcTypeHelper.ConvertByteStringToObject<Dictionary<string, object?>>(request.Packet.Data),
ErrorMessage = request.Packet.ErrorMessage ErrorMessage = request.Packet.ErrorMessage
}; };
foreach (var deviceId in request.DeviceIds) foreach (var deviceId in request.DeviceIds)
@@ -106,7 +106,8 @@ public class PusherServiceGrpc(
{ {
Topic = request.Notification.Topic, Topic = request.Notification.Topic,
Title = request.Notification.Title, Title = request.Notification.Title,
Subtitle = request.Notification.Subtitle, Content = request.Notification.Body, Subtitle = request.Notification.Subtitle,
Content = request.Notification.Body,
Meta = GrpcTypeHelper.ConvertFromValueMap(request.Notification.Meta) Meta = GrpcTypeHelper.ConvertFromValueMap(request.Notification.Meta)
}; };
if (request.Notification.ActionUri is not null) if (request.Notification.ActionUri is not null)
@@ -116,17 +117,20 @@ public class PusherServiceGrpc(
return new Empty(); return new Empty();
} }
public override async Task<Empty> UnsubscribePushNotifications(UnsubscribePushNotificationsRequest request, ServerCallContext context) public override async Task<Empty> UnsubscribePushNotifications(UnsubscribePushNotificationsRequest request,
ServerCallContext context)
{ {
await pushService.UnsubscribeDevice(request.DeviceId); await pushService.UnsubscribeDevice(request.DeviceId);
return new Empty(); return new Empty();
} }
public override Task<GetWebsocketConnectionStatusResponse> GetWebsocketConnectionStatus(GetWebsocketConnectionStatusRequest request, ServerCallContext context) public override Task<GetWebsocketConnectionStatusResponse> GetWebsocketConnectionStatus(
GetWebsocketConnectionStatusRequest request, ServerCallContext context)
{ {
var isConnected = request.IdCase switch var isConnected = request.IdCase switch
{ {
GetWebsocketConnectionStatusRequest.IdOneofCase.DeviceId => websocket.GetDeviceIsConnected(request.DeviceId), GetWebsocketConnectionStatusRequest.IdOneofCase.DeviceId =>
websocket.GetDeviceIsConnected(request.DeviceId),
GetWebsocketConnectionStatusRequest.IdOneofCase.UserId => websocket.GetAccountIsConnected(request.UserId), GetWebsocketConnectionStatusRequest.IdOneofCase.UserId => websocket.GetAccountIsConnected(request.UserId),
_ => false _ => false
}; };