Signalr java客户端重新连接事件不存在';我不能在安卓工作室工作
我在android应用程序中有一个信号器实例,这是信号器代码:Signalr java客户端重新连接事件不存在';我不能在安卓工作室工作,java,android,signalr,signalr.client,Java,Android,Signalr,Signalr.client,我在android应用程序中有一个信号器实例,这是信号器代码: public class HubConnectionFactory { private static String serverUrl = "http://xxxx.example.com/"; private static HubConnectionFactory mInstance= null; private HubConnection mConnection; private HubProxy mHub; protec
public class HubConnectionFactory {
private static String serverUrl = "http://xxxx.example.com/";
private static HubConnectionFactory mInstance= null;
private HubConnection mConnection;
private HubProxy mHub;
protected HubConnectionFactory(){}
public static synchronized HubConnectionFactory getInstance(){
if(null == mInstance){
mInstance = new HubConnectionFactory();
}
return mInstance;
}
public HubConnection getHubConnection() {
return mConnection;
}
public HubProxy getHub() {
return mHub;
}
public SignalRFuture<Void> connect() {
final SignalRFuture<Void> future = new SignalRFuture<Void>();
createObjects(future);
return future;
}
private void createObjects(final SignalRFuture<Void> future) {
mConnection = new HubConnection(serverUrl, "version=1.0.0.0", true, new Logger() {
@Override
public void log(String message, LogLevel level) {
if (level == LogLevel.Critical) {
Log.d("TAG", level.toString() + ": " + message);
}
}
});
try {
mHub = mConnection.createHubProxy("ChatHub");
} catch (InvalidStateException e) {
Log.d("TAG", "Error getting creating proxy: " + e.toString());
future.triggerError(e);
}
SignalRFuture<Void> connectionFuture = mConnection.start();
mConnection.connected(new Runnable() {
@Override
public void run() {
future.setResult(null);
}
});
connectionFuture.done(new Action<Void>() {
@Override
public void run(Void obj) throws Exception {
future.setResult(null);
}
});
connectionFuture.onError(new ErrorCallback() {
@Override
public void onError(Throwable error) {
future.triggerError(error);
}
});
mConnection.error(new ErrorCallback() {
@Override
public void onError(Throwable error) {
Log.d("TAG", "Connection error: " + error.toString());
if (!future.isDone()) {
future.triggerError(error);
}
}
});
}
public void disconnect() {
mHub = null;
mConnection.stop();
}
我只是不知道为什么我的信号器从不激活我的重新连接和重新连接事件,我希望信号器客户端立即重新连接被断开并显示该消息
我如何才能做到这一点?尝试使用
mttransport=new LongPollingTransport(mConnection.getLogger())
而不是ServerSentEventsTransport
Carlos您是否找到任何解决方案尝试使用MTTransport=new LongPollingTransport(mConnection.getLogger())
而不是服务器SentEventStranSport
Carlos您找到解决方案了吗
public class LoginActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
HubConnectionFactory hub2 = HubConnectionFactory.getInstance();
hub2.connect();
HubsConectionEvents();
....
}
private void HubsConectionEvents() {
HubConnection conn = HubConnectionFactory.getInstance().getHubConnection();
conn.connectionSlow(new Runnable() {
@Override
public void run() {
runOnUiThread(new Runnable() {
public void run() {
Toast.makeText(getApplicationContext(), "Connection is slow and may fail...", Toast.LENGTH_SHORT).show();
}
});
}
});
conn.reconnected(new Runnable() {
@Override
public void run() {
runOnUiThread(new Runnable() {
public void run() {
Toast.makeText(getApplicationContext(), "Connection is reconnected", Toast.LENGTH_SHORT).show();
}
});
}
});
conn.reconnecting(new Runnable() {
@Override
public void run() {
runOnUiThread(new Runnable() {
public void run() {
Toast.makeText(getApplicationContext(), "Connection is reconnecting", Toast.LENGTH_SHORT).show();
}
});
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_login, menu);
return true;
}
}