Я создал .NET Console App
, в котором я хочу принять client
веб-сокеты (я использую расширение Chrome - Simple Web Socket Client
).Когда я пытаюсь отправить сообщения подключенным клиентам, я получаю эту ошибку в браузере:
WebSocket connection to 'ws://localhost:8600/' failed:
Error during WebSocket handshake: net::ERR_INVALID_HTTP_RESPONSE
CLOSED: ws://localhost:8600
Сервер
class Program
{
static async Task Main(string[] args)
{
CancellationTokenSource src = new CancellationTokenSource();
Console.WriteLine("starting server...");
Task server = Task.Run(async () =>
{
Socket serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
var point = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 8600);
serverSocket.Bind(point);
Console.WriteLine("Listening on localhost:8600" );
serverSocket.Listen(6);
var client = await serverSocket.AcceptAsync();
Task clientTask = Task.Run(async () =>
{
while (true)
{
await client.SendAsync(Encoding.UTF8.GetBytes("Date is" + DateTime.Now.ToString()), SocketFlags.None);
await Task.Delay(5000);
}
},src.Token);
}, src.Token);
while (true)
{
if (Console.ReadKey().Key == ConsoleKey.A)
{
src.Cancel();
break;
}
}
}
}
Из Simple Web Socket Client (Chromeрасширение) я пытаюсь подключиться к: ws://localhost:8600
PS Я не уверен в том, чтобы передавать один и тот же токен во всех задачах, но кроме этого я не знаю, почему он остается с этой ошибкой.