Skip to content

Commit c2fd493

Browse files
committed
Revert "fix: MVC响应通过集群,release version"
This reverts commit becfa75.
1 parent becfa75 commit c2fd493

File tree

1 file changed

+9
-22
lines changed

1 file changed

+9
-22
lines changed

Cyaim.WebSocketServer/Cyaim.WebSocketServer/Infrastructure/Handlers/MvcHandler/MvcChannelHandler.cs

Lines changed: 9 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -601,15 +601,14 @@ private async Task MvcForwardSendData(WebSocket webSocket, HttpContext context,
601601
object invokeResult = await MvcDistributeAsync(webSocketOption, context, webSocket, request, requestBody, logger, appLifetime);
602602

603603
// 发送结果给客户端
604-
// 使用统一的SendAsync方法,自动适配单机和集群模式
605-
// Use unified SendAsync method, automatically adapts to single machine or cluster mode
606-
var connectionId = context.Connection.Id;
607-
608-
// 序列化响应以获取大小(用于统计)
604+
//string serialJson = JsonSerializer.Serialize(invokeResult, webSocketOption.DefaultResponseJsonSerializerOptions);
605+
//await webSocket.SendAsync(new ArraySegment<byte>(Encoding.UTF8.GetBytes(serialJson)), result.MessageType, result.EndOfMessage, CancellationToken.None);
606+
607+
// 序列化响应以获取大小
609608
string serialJson = JsonSerializer.Serialize(invokeResult, webSocketOption.DefaultResponseJsonSerializerOptions);
610609
var responseBytes = Encoding.UTF8.GetBytes(serialJson);
611-
612-
await WebSocketManager.SendAsync(connectionId, invokeResult, webSocketOption.DefaultResponseJsonSerializerOptions, Encoding.UTF8).ConfigureAwait(false);
610+
611+
await invokeResult.SendLocalAsync(webSocketOption.DefaultResponseJsonSerializerOptions, result.MessageType, timeout: ResponseSendTimeout, encoding: Encoding.UTF8, sendBufferSize: SendTextBufferSize, socket: webSocket).ConfigureAwait(false);
613612

614613
// 记录消息发送指标
615614
var currentNodeId = Infrastructure.Cluster.GlobalClusterCenter.ClusterContext?.NodeId;
@@ -669,22 +668,10 @@ private async Task MvcForwardSendData(WebSocket webSocket, HttpContext context,
669668
object invokeResult = await MvcDistributeAsync(webSocketOption, context, webSocket, request, requestBody, logger, appLifetime);
670669

671670
// 发送结果给客户端
672-
// 使用统一的SendAsync方法,自动适配单机和集群模式
673-
// Use unified SendAsync method, automatically adapts to single machine or cluster mode
674-
var connectionId = context.Connection.Id;
675-
676-
// 序列化响应以获取大小(用于统计)
677-
string serialJson = JsonSerializer.Serialize(invokeResult, webSocketOption.DefaultResponseJsonSerializerOptions);
678-
var responseBytes = Encoding.UTF8.GetBytes(serialJson);
679-
680-
await WebSocketManager.SendAsync(connectionId, invokeResult, webSocketOption.DefaultResponseJsonSerializerOptions, Encoding.UTF8).ConfigureAwait(false);
681-
682-
// 记录消息发送指标
683-
var currentNodeId = Infrastructure.Cluster.GlobalClusterCenter.ClusterContext?.NodeId;
684-
_metricsCollector?.RecordMessageSent(responseBytes.Length, currentNodeId, context.Request.Path);
671+
//string serialJson = JsonSerializer.Serialize(invokeResult, webSocketOption.DefaultResponseJsonSerializerOptions);
672+
//await webSocket.SendAsync(new ArraySegment<byte>(Encoding.UTF8.GetBytes(serialJson)), result.MessageType, result.EndOfMessage, CancellationToken.None);
685673

686-
// 记录统计信息(如果统计记录器可用)
687-
Infrastructure.Cluster.GlobalClusterCenter.StatisticsRecorder?.RecordBytesSent(context.Connection.Id, responseBytes.Length);
674+
await invokeResult.SendLocalAsync(webSocketOption.DefaultResponseJsonSerializerOptions, result.MessageType, timeout: ResponseSendTimeout, encoding: Encoding.UTF8, sendBufferSize: SendTextBufferSize, socket: webSocket).ConfigureAwait(false);
688675
}
689676
catch (JsonException ex)
690677
{

0 commit comments

Comments
 (0)