【问题标题】:SignalR and AndroidSignalR 和 Android
【发布时间】:2017-02-01 23:51:33
【问题描述】:

我们有一个 Web 应用(不是原生应用),分为前端和后端。此应用程序托管在 Microsoft Azure(网站)上。我们使用 SignalR 将通知从服务器推送到客户端(浏览器)。

它在 PC / iOS 上运行良好,但在 Android 设备上运行不正常。更具体地说,它适用于 Nexus 5 android 7.0,但不适用于 Galaxy S4 Android 4.4.2!

SignalR 传输设置为自动(即我们在启动连接时不指定传输) 有人遇到过这样的问题吗?我们在跟踪中看不到任何东西...

谢谢!

【问题讨论】:

  • 您的问题中有太多不清楚的地方。你使用的是什么 SignalR 的 Android 实现库?有些代码可能是?
  • 这是一个网络应用程序,所以我没有使用任何特定的 Android 库,只是前端的 signalR bower 组件和后端的 aspnet.signalR.core .. 我使用的是标准在前端(js)connection.start().done()上启动连接的signalR代码......我得到了连接ID,因此建立了连接......然后从后端,我只是得到了hubcontext使用全局/连接..然后从我的服务器代码调用客户端方法...
  • 再一次,它在大多数设备上都能正常工作......但在 Android 4.4.2 上却不行!首先我认为这是一个传输问题,所以我切换到 serverentevents 但没有成功......
  • 希望这能澄清问题!
  • 您是否在 Android 上尝试过其他浏览器?当设置为自动时,SignlR 使用浏览器中可用的最佳传输。

标签: android signalr


【解决方案1】:

经过一些测试,我想通了:我使用 request.User.Identity.Name 来识别用户并调用 Clients.User().someclientmethods 来通知客户端。

它可以在大多数设备上找到,但我不知道为什么在 Android 上(对于某些版本),它没有找到客户端身份名称,因此没有将通知发送回客户端...

我必须使用 userId 实现一个 IUserIdProvider 来识别客户端,它现在似乎正在工作......

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-18
    • 1970-01-01
    • 2015-12-24
    • 1970-01-01
    • 2020-09-08
    • 1970-01-01
    • 2014-11-05
    • 1970-01-01
    相关资源
    最近更新 更多