Skip to content

Commit 7364f4c

Browse files
committed
feat: 通话重连接口
1 parent 5cb74d0 commit 7364f4c

1 file changed

Lines changed: 18 additions & 28 deletions

File tree

Cyaim.WebSocketServer/Cyaim.WebSocketServer/Infrastructure/WebSocketManager.cs

Lines changed: 18 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -276,7 +276,7 @@ private static async Task SendStreamDataAsync(WebSocket webSocket, WebSocketMess
276276
{
277277
totalBytesRead += bytesRead;
278278
}
279-
279+
280280
if (totalBytesRead > 0)
281281
{
282282
await webSocket.SendAsync(new ArraySegment<byte>(buffer, 0, totalBytesRead), messageType, endOfMessage: true, cancellationToken);
@@ -661,7 +661,7 @@ public static async Task<Dictionary<string, bool>> SendAsync(
661661
// Use cluster routing / 使用集群路由
662662
var connectionIdsList = connectionIds.ToList();
663663
var connectionIdsArray = connectionIdsList.ToArray();
664-
664+
665665
var results = await clusterManager.RouteMessagesAsync(connectionIdsArray, data, (int)messageType);
666666
return results;
667667
}
@@ -676,32 +676,22 @@ public static async Task<Dictionary<string, bool>> SendAsync(
676676
{
677677
continue;
678678
}
679-
680-
var task = Task.Run(async () =>
679+
var webSocket = GetLocalWebSocket(connectionId);
680+
if (webSocket != null && webSocket.State == WebSocketState.Open)
681681
{
682-
var webSocket = GetLocalWebSocket(connectionId);
683-
if (webSocket != null && webSocket.State == WebSocketState.Open)
684-
{
685-
try
686-
{
687-
await webSocket.SendAsync(
688-
new ArraySegment<byte>(data),
689-
messageType,
690-
true,
691-
CancellationToken.None);
692-
results[connectionId] = true;
693-
}
694-
catch
695-
{
696-
results[connectionId] = false;
697-
}
698-
}
699-
else
700-
{
701-
results[connectionId] = false;
702-
}
703-
});
704-
tasks.Add(task);
682+
Task task = webSocket.SendAsync(
683+
new ArraySegment<byte>(data),
684+
messageType,
685+
true,
686+
CancellationToken.None);
687+
tasks.Add(task);
688+
689+
results[connectionId] = true;
690+
}
691+
else
692+
{
693+
results[connectionId] = false;
694+
}
705695
}
706696

707697
await Task.WhenAll(tasks);
@@ -978,7 +968,7 @@ public static async Task<Dictionary<string, bool>> SendAsync(
978968
// Use local WebSocket / 使用本地 WebSocket
979969
var results = new Dictionary<string, bool>();
980970
var connectionIdList = connectionIds.Where(id => !string.IsNullOrEmpty(id)).ToList();
981-
971+
982972
if (connectionIdList.Count == 0)
983973
{
984974
return results;

0 commit comments

Comments
 (0)