aspnetcore/test/Microsoft.AspNetCore.WebSoc.../WebSocketPair.cs

35 lines
1.2 KiB
C#

using System;
using System.Net.WebSockets;
using Microsoft.AspNetCore.WebSockets.Internal;
namespace Microsoft.AspNetCore.WebSockets.Test
{
internal class WebSocketPair
{
public WebSocket ClientSocket { get; }
public WebSocket ServerSocket { get; }
public DuplexStream ServerStream { get; }
public DuplexStream ClientStream { get; }
public WebSocketPair(DuplexStream serverStream, DuplexStream clientStream, WebSocket clientSocket, WebSocket serverSocket)
{
ClientStream = clientStream;
ServerStream = serverStream;
ClientSocket = clientSocket;
ServerSocket = serverSocket;
}
public static WebSocketPair Create()
{
// Create streams
var serverStream = new DuplexStream();
var clientStream = serverStream.CreateReverseDuplexStream();
return new WebSocketPair(
serverStream,
clientStream,
clientSocket: WebSocketFactory.CreateClientWebSocket(clientStream, null, TimeSpan.FromMinutes(2), 1024),
serverSocket: WebSocketFactory.CreateServerWebSocket(serverStream, null, TimeSpan.FromMinutes(2), 1024));
}
}
}