La aplicación de Android no recibió datos del centro SignalR

Ya leí estos temas:
Cómo usar SignalR en Android
El cliente Android no obtiene datos, pero el cliente .net obtiene datos del servidor SignalR

Escribo un sistema de chat simple con Android que funciona con SignalR.
Se supone que los clientes envían mensajes (llamandoSendMessage método en el servidor) y el servidor debe llamar alNewMessage método en los clientes.

Aquí está miChatHub clase (simplificada) escrita en 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);
        }
    }
}

Cuando el cliente de Android se conecta al servidor, en elOnConnected método, la identificación de la conexión se almacenará en el_connectedClients y funciona bien

En elSendMessage método de laChatHub clase, tenemos la identificación de conexión del dispositivo Android, y estoy seguro de que el dispositivo Android está dentro de la lista

Y aquí están mis códigos de 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
                }
        });

    }
}

En lo anteriorJava código, invocando elsendMessage en el servidor funciona bien y el servidor recibe los mensajes.
Pero el único problema es que elhub.on(...) ohub.subscribe(...) El servidor nunca llama a los eventos.
En una descripción simple, Mi aplicación puede enviar mensajes, pero no puede recibir mensajes de los demás.
Cualquier sugerencia será apreciada.

Respuestas a la pregunta(2)

Su respuesta a la pregunta