【问题标题】:android signalR hubconnection application negotiation failed with serverandroid signalR hubconnection应用程序协商失败与服务器
【发布时间】:2017-07-24 14:46:01
【问题描述】:

嗨,我是 android 开发的新手,我想编写一个使用 signalR java-client 的应用程序。在第一步中,我回答了this,这是我的客户端代码:

Platform.loadPlatformComponent(new AndroidPlatformComponent());
String host = "localhost";
HubConnection connection = new HubConnection( host);
HubProxy hub = connection.createHubProxy("HubConnectionAPI");

SignalRFuture<Void> awaitConnection = connection.start(new LongPollingTransport(connection.getLogger()));
try {
    awaitConnection.get();
} catch (InterruptedException e) {
    e.printStackTrace();
} catch (ExecutionException e) {
    e.printStackTrace();
}

hub.subscribe(this);
try {
    hub.invoke("DisplayMessageAll", "message from android client").get();
    System.out.println("sent!!!");
} catch (InterruptedException e) {
    e.printStackTrace();
} catch (ExecutionException e) {
    e.printStackTrace();
}

你可以从here下载服务器代码

awaitConnection.get(); 出现以下错误

错误:

W/System.err: java.util.concurrent.ExecutionException: microsoft.aspnet.signalr.client.transport.NegotiationException: There was a problem in the negotiation with the server

我也有这个错误:

Caused by: microsoft.aspnet.signalr.client.http.InvalidHttpStatusCodeException:Invalid status code: 404

谁能帮帮我?我搜索了很多,但我没有发现任何对我有帮助的东西

编辑:

客户端可以通过this 访问集线器,但我如何在 android 上实现以便我的应用程序可以连接?

这是服务器上的日志文件:

2015-11-11 09:05:08 10.2.0.18 GET /signalr/negotiate clientProtocol=1.3&connectionData=%5B%7B%22name%22%3A%22hubconnectionapi%22%7D%5D 80 - 10.2.0.253 SignalR+(lang=Java;+os=android;+version=2.0) - 404 0 2 3

【问题讨论】:

  • 您可以在stackoverflow.com/questions/32505390/…stackoverflow.com/questions/32573823/… 阅读我的答案,希望对您有所帮助!
  • @BNK 感谢您的回复。我使用了你的 signalR 服务类,但仍然有同样的问题!!我得到 404 文件或目录未找到!我在我的服务器中添加了日志。你能帮忙吗?
  • 确保您可以从安卓手机/模拟器访问服务器 url。尝试在手机中使用网络浏览器。不要忘记在 AndroidManifest.xml 文件中设置 INTERNET 权限。
  • @BNK 我发现了问题。谢谢你,很抱歉占用你的时间
  • 不客气,编码愉快:)

标签: java signalr


【解决方案1】:

更改了String host = "localhost";

String host = "localhost/signalr";

【讨论】:

    【解决方案2】:

    localhost 对我不起作用,我必须在 IIS 上部署 asp.net Web 应用程序,允许防火墙入站规则中的端口并将其放入 android 的信号器配置中。希望这对某人有所帮助...干杯!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-05
      • 2020-08-06
      • 2015-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多