javascript - 移动网络上的 SignalR?

标签 javascript asp.net signalr .net-4.5

我正在评估 SignalR 技术在我们的新产品中的使用(面向广大受众的移动 Web 应用程序,除其他外,它需要在某些页面上进行实时聊天)。

我关注了the guide创建一个非常基本的聊天演示。 然后我在我的 IIS 上部署了演示,并开始自言自语。 所有客户端都在同一个 WiFi 网络上。

桌面浏览器或多或少工作正常。

然而,iOS 4.2 上的 Safari 和 WP7.10 上的 IE——它们都很糟糕。 有时当我按下“发布”按钮时没有任何反应。 有时传出消息可以正常发送到桌面 firefox,但没有传入消息。

也许我遗漏了一些明显的东西?也许我需要 jquery mobile 而不是普通的?也许我应该只调整 IIS/web.config/whatever,即使在糟糕的移动互联网中,SignalR 也会蓬勃发展并开始完美地工作?

或者这是否意味着即使在 WiFi 上与网络服务器的单跳内它也无法工作,我应该扔掉 SignalR 并只编写一些 JavaScript 来轮询 JSON 端点以获取新消息?

提前致谢!

最佳答案

我一直在使用 phonegap(这意味着使用 Safari 浏览器)和适用于 Android 和 iPhone 的 SignalR 开发应用程序。我遇到的主要问题是 iOS 6.x,因为 SignalR 没有连接到默认配置。我已经找到了一个解决方法,我已经解释过了 here .如果您觉得它有用,请告诉我。

此代码将模拟连接、检查消息、断开连接并等待 5 秒以解决 iOS 问题。

在js中添加

$.connection.hub.start({ transport: 'longPolling' }).done(function (myHubConnection) { });

并在 Application_Start() 中添加

GlobalHost.Configuration.ConnectionTimeout = TimeSpan.FromSeconds(1);
Microsoft.AspNet.SignalR.Transports.LongPollingTransport.LongPollDelay = 5000;
RouteTable.Routes.MapHubs();

关于javascript - 移动网络上的 SignalR?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9509124/

相关文章:

javascript - 将 js 变量传递给 onkeyup 输入文本

html - 标签背景颜色不起作用

c# - 确定设置源自哪个配置文件?

asp.net - 并非所有文件都显示在与 Azure Web App 的 ftp session 中

signalr - SignalR 的 WebTest 可能吗?

asp.net-core - 多个 SignalR(websocket)连接与具有多个集线器的单个连接

azure - 消息未到达 Azure SignalR 服务

javascript - 如何使本身就是 Flex 子级的父级的 Flex 子级的最大高度由其自身的 Flex 状态确定?

javascript - 向左扩展 div 宽度以适应其内容

javascript - 如何使用 Jquery 和 JSON 填充 Bootstrap 网格?