【发布时间】:2015-02-22 06:51:33
【问题描述】:
我已经下载了SignalR 的官方示例,当我尝试从 WinFormsClient 连接到 WinFormsServer 时它工作正常。一切都很好......
我下载了适用于 android 的 SignalR 并尝试使用下面的代码建立连接,但没有成功...我只收到 SocketTimeoutException。这是我的代码,也许有人可以帮助我!
我正在一个真实的设备上尝试这个。 PC和设备都在同一个wifi网络上。
@Override
public void onClick(View v) {
Platform.loadPlatformComponent(new AndroidPlatformComponent());
String host = "http://192.168.0.11:8080/signalr";
HubConnection connection = new HubConnection(host);
HubProxy proxy = connection.createHubProxy("MyHub");
SignalRFuture<Void> awaitConnection = connection.start();
try {
awaitConnection.get();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
proxy.invoke("Send", new String[]{"Hahahahahhahaha", "shit shit shit!"});
proxy.on("AddMessage", new SubscriptionHandler2<String, String>() {
@Override
public void run(String p1, String p2) {
Log.d("result := ", p1 + " ---- " + p2);
}
}, String.class, String.class); }
});
【问题讨论】:
-
使用设备或模拟器?
-
@greenapps 当然是一个设备。我不得不将其添加到问题中。
-
好的。你能解释一下为什么你没有
NetworkOnMainThreadException吗? -
@greenapps 好吧!!!这是一个我没有想到的好点......这是否意味着根本没有网络活动?
-
String host = "http://192.168.0.11:8080/signalr";。你称之为host,实际上它是一个url。主机是 192.168.0.11。现在新的 HubConnection 期望什么?主机还是网址?
标签: java android signalr signalr.client