Сигнал-клиент не получает сообщения - PullRequest
0 голосов
/ 02 февраля 2019

У меня есть следующий код клиента сигнализатора (использующий библиотеку signalr-client ), который успешно подключается и может отправить сообщение на мой сервер:

from requests import Session
from signalr import Connection
import time
with Session() as session:
    #create a connection
    connection = Connection("http://localhost:52138/signalr", session)

    #get chat hub
    chat = connection.register_hub('echo')

    #start a connection
    connected = False

    while not connected:
        try:
            connection.start()
            connected = True
        except Exception as e:
            print (e)
            time.sleep(1)
            pass

    #create new chat message handler - can't get to fire
    def message_received(message):
        print ('Hub: New message.', message)

    #receive new chat messages from the hub
    chat.client.on('message_received', message_received)

    #post new message - this works
    chat.server.invoke('say', 'Python is here')

    while True:
        pass

и соответствующий код сервера:

[HubName("echo")]
public class EchoHub : Hub
{
    public void Say(string message)
    {
        Trace.WriteLine("hub: " + message);
        Clients.All.SendAsync("message_received", "This is a test message to everyone.");
    }

    public override Task OnConnected()
    {
        UserHandler.ConnectedIds.Add(Context.ConnectionId);
        return base.OnConnected();
    }

    public override Task OnDisconnected(bool stopCalled)
    {
        UserHandler.ConnectedIds.Remove(Context.ConnectionId);
        return base.OnDisconnected(stopCalled);
    }
}

public static class UserHandler
{
    public static HashSet<string> ConnectedIds = new HashSet<string>();
}

Я ожидаю, что message_received будет запущен и покажет This is a test message to everyone., но, похоже, его не уволят ..

Может кто-нибудь увидеть, что яздесь делаешь неправильно?

...