36 lines
1.3 KiB
C#
36 lines
1.3 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: WebSocketProtocol.CreateFromStream(clientStream, isServer: false, subProtocol: null, keepAliveInterval: TimeSpan.FromMinutes(2)),
|
|
serverSocket: WebSocketProtocol.CreateFromStream(serverStream, isServer: true, subProtocol: null, keepAliveInterval: TimeSpan.FromMinutes(2)));
|
|
}
|
|
}
|
|
}
|