我在Osx上实现安全的Web套接字客户端时遇到问题.我正在使用System.Net.WebSockets中的ClientWebSocket.这是一些测试代码:
static async Task RunLoop()
{
ClientWebSocket ws = new ClientWebSocket();
await ws.ConnectAsync(new Uri("wss://echo.websocket.org"), CancellationToken.None);
do
{
Console.Write("Enter message:");
var msg = Console.ReadLine();
if (msg == "quit")
{
break;
}
var b = new ArraySegment<byte>(UTF8Encoding.UTF8.GetBytes(msg));
await ws.SendAsync(b, WebSocketMessageType.Text, true, CancellationToken.None);
byte[] bb = new byte[2048];
ArraySegment<byte> buffer = new ArraySegment<byte>(bb);
var result = await ws.ReceiveAsync(buffer, CancellationToken.None);
switch (result.MessageType)
{
case WebSocketMessageType.Text:
Console.WriteLine(UTF8Encoding.UTF8.GetString(buffer.Array));
break;
case WebSocketMessageType.Close:
await ws.CloseAsync(WebSocketCloseStatus.NormalClosure, "", CancellationToken.None);
break;
}
} while (true);
}
static void Main(string[] args)
{ …
Run Code Online (Sandbox Code Playgroud)