I had to use a Long polling transport, because the default transport delayed the messages.
The transport can be set when startig the connection :
await connection.Start(new LongPollingTransport());
as said in the comment below, a WebSocket transport is probably better
await connection.Start (new WebSocketTransport());