【问题标题】:Connect to WinForm server using SignalR?使用 SignalR 连接到 WinForm 服务器?
【发布时间】: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


【解决方案1】:

您的防火墙可能会阻止连接。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-24
    • 2015-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多