0
私はこのクラスを持っています。このクラスのクライアントは、chatHubがコールバックに割り当てられるとすぐに、フィールドchatHubのインスタンスを取得します。 connection.connected(() - > chatHub = connection.createHubProxy( "ChatHub")); chatHubがnullの可能性があります。 chatHubは、初期化されるとすぐに加入者にプッシュする必要があります。 アイデア?遅延初期化フィールドから観測可能
public class SignalRManager {
private HubProxy chatHub;
public SignalRManager() {
Platform.loadPlatformComponent(new AndroidPlatformComponent());
HubConnection connection = new HubConnection("https://test.chatlasapp.com/signalr/hubs");
connection.stateChanged((connectionState, connectionState2) -> Log.i("SignalR", connectionState.name() + "->" + connectionState2.name()));
connection.closed(() -> {
Log.i("SignalR", "Closed");
chatHub = null;
connection.start();
});
//As soon as HubConnection connected this callback invokes.
connection.connected(() -> chatHub = connection.createHubProxy("ChatHub"));
connection.start();
}
Observable<HubProxy> getHubProxy(){
}
}
getHubProxyメソッドを正しく実装する方法がわかりましたか? ありがとうございます!
偉大な男!ありがとうございました。私はそれが時間だけに放出されることを望んでいません。私はchatHub varの "新鮮な"バージョンを使用したい。このため、リプレイ(1)を削除することはできますか? – beka
は単に 'subject'を返します。それだけで十分です( 'autoconnect'もありません) – dwursteisen
あなたは' subject.onCompleted() 'も削除したいかもしれません – dwursteisen