Skip to content

Commit f324a04

Browse files
committed
Update RedisClusterTransport.cs
1 parent 7f0ea6e commit f324a04

1 file changed

Lines changed: 30 additions & 2 deletions

File tree

Cyaim.WebSocketServer/Cyaim.WebSocketServer.Cluster.StackExchangeRedis/RedisClusterTransport.cs

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,21 @@ await _subscriber.SubscribeAsync($"cluster:node:{_nodeId}", (channel, message) =
7979
{
8080
try
8181
{
82-
var clusterMessage = JsonSerializer.Deserialize<ClusterMessage>(message);
82+
// RedisValue needs to be converted to string / RedisValue 需要转换为字符串
83+
var messageJson = message.ToString();
84+
if (string.IsNullOrEmpty(messageJson))
85+
{
86+
_logger.LogWarning("Received empty message from Redis");
87+
return;
88+
}
89+
90+
var clusterMessage = JsonSerializer.Deserialize<ClusterMessage>(messageJson);
91+
if (clusterMessage == null)
92+
{
93+
_logger.LogWarning("Failed to deserialize cluster message from Redis");
94+
return;
95+
}
96+
8397
MessageReceived?.Invoke(this, new ClusterMessageEventArgs
8498
{
8599
FromNodeId = clusterMessage.FromNodeId,
@@ -97,7 +111,21 @@ await _subscriber.SubscribeAsync("cluster:broadcast", (channel, message) =>
97111
{
98112
try
99113
{
100-
var clusterMessage = JsonSerializer.Deserialize<ClusterMessage>(message);
114+
// RedisValue needs to be converted to string / RedisValue 需要转换为字符串
115+
var messageJson = message.ToString();
116+
if (string.IsNullOrEmpty(messageJson))
117+
{
118+
_logger.LogWarning("Received empty broadcast message from Redis");
119+
return;
120+
}
121+
122+
var clusterMessage = JsonSerializer.Deserialize<ClusterMessage>(messageJson);
123+
if (clusterMessage == null)
124+
{
125+
_logger.LogWarning("Failed to deserialize cluster broadcast message from Redis");
126+
return;
127+
}
128+
101129
if (clusterMessage.FromNodeId != _nodeId)
102130
{
103131
MessageReceived?.Invoke(this, new ClusterMessageEventArgs

0 commit comments

Comments
 (0)