Android-приложение не получило данные из центра SignalR

Я уже прочитал эти темы:
как использовать SignalR в Android
Клиент Android не получает данные, а клиент .net получает данные с сервера SignalR

Я пишу простую систему чата с Android, которая работает с SignalR.
Предполагается, что клиенты отправляют сообщения (по телефонуSendMessage метод на сервере), и сервер должен вызватьNewMessage метод на клиентов.

Вот мойChatHub Класс (упрощенный) написан на C #.

public class ChatHub : Hub
{
    // Store the clients connections Id
    static readonly List<string> _connectedClients;

    public override Task OnConnected()
    {
        // Keep connections id
        // This section works fine and when the android device connects to the server,
        // Its connection id will stored.
        _connectedClients.Add(Context.ConnectionId)

        //... other codes
    }

    public void SendMessage(string message)
    {
        foreach (var connectionId in _connectedClients)
        {
            // according to the logs 
            // android device connection id exists here
            // and it works fine.
            Clients.Client(connectionId).NewMessage(message);
        }
    }
}

Когда клиент Android подключается к серверу, наOnConnected метод, идентификатор соединения будет сохранен в_connectedClients и работает нормально.

вSendMessage методChatHub класс, у нас есть идентификатор подключения устройства Android, и я уверен, что устройство Android находится в списке

А вот и мои коды Andoird:

public class ChatActivity extends AppCompatActivity
{
    // private fields
    HubConnection connection;
    HubProxy hub;
    ClientTransport transport;

    protected void onCreate(Bundle savedInstanceState) {

        Logger logger = new Logger() {
            @Override
            public void log(String message, LogLevel logLevel) {
                Log.e("SignalR", message);
            }
        };

        Platform.loadPlatformComponent(new AndroidPlatformComponent());
        connection = new HubConnection("192.168.1.100");
        hub = connection.createHubProxy("chatHub"); // case insensitivity

        transport = new LongPollingTransport(connection.getLogger());

        // no difference when using this:
        //transport = new ServerSentEventsTransport(connection.getLogger());

        // this event never fired!
        hub.subscribe(new Object() {
            public void NewMessage(String message)
            {
                Log.d("<Debug", "new message received in subscribe"); // won't work!
            }
        }

        // this event never fired!
        hub.on("NewMessage", new SubscriptionHandler() {
            @Override
            public void run() {
                Log.d("<Debug", "new message received in `on`"); // won't work!
            }
        });

        // connect to the server that works fine.
        SignalRFuture<Void> awaitConnection = connection.start(transport);
        try {
            awaitConnection.get(); // seems useless when using this or not!
        }
        catch (Exception ex) {
        }

        // this method works fine.
        hub.invoke("sendMessage", "this is a test message to the server")
        .done(new Action<Void>() {
                @Override
                public void run(Void aVoid) throws Exception {
                    Log.d("<Debug", "message sent."); // Works fine
                }
        });

    }
}

В вышеДжава код, ссылаясь наsendMessage на сервере работает нормально и сервер получает сообщения.
Но единственная проблема заключается в том, чтоhub.on(...) или жеhub.subscribe(...) события никогда не вызываются сервером.
В простом описании Мое приложение может отправлять сообщения, но не может получать сообщения от других.
Любое предложение будет оценено.

Ответы на вопрос(0)

Ваш ответ на вопрос