Строка от C# до Python через WebSocket - PullRequest
0 голосов
/ 16 марта 2020

У меня есть сервер WebSocket, на котором написано Python3.

server = WebsocketServer(13254, host='127.0.0.1')
server.set_fn_new_client(new_client)
server.set_fn_message_received(message_got)
server.run_forever()

И C# Клиент Nuget .

private async void Connect()
    {
        var exitEvent = new ManualResetEvent(false);
        var url = new Uri($"wss://{ip}:{port.ToString()}");
        using (this.client = new WebsocketClient(url))
        {
            client.ReconnectTimeout = TimeSpan.FromSeconds(10);
            client.ReconnectionHappened.Subscribe(info =>
                Console.WriteLine($"Reconnection happened, type: {info.Type}"));

            client.MessageReceived.Subscribe(msg => Console.WriteLine($"Message received: {msg}"));

            await client.Start();

            exitEvent.WaitOne();
        }
    }

    public async void send(string data)
    {
        await Task.Run(() => this.client.Send(Encoding.UTF8.GetBytes("A"))); 

    }

Когда я пытаюсь Чтобы отправить некоторый текст, сервер всегда падает с ошибкой UnicodeDecodeError: 'utf-8' codec can't decode byte 0x8e in position 4: invalid start byte.

Я пытался:

  • Encoding.UTF8.GetBytes(data) (клиент)

Но это не так работа.

1 Ответ

0 голосов
/ 17 марта 2020

Работает. Но я допустил ошибку в var url = new Uri($"wss://{ip}:{port.ToString()}"); Я провел около 6 часов и прочитал много информации о сокетах и ​​т. Д. c. и проблема была в 'S' ПИСЬМЕ. «Ws: //'...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...