移动网络上的SignalR?

Soo*_*nts 8 javascript asp.net .net-4.5 signalr

我正在评估SignalR技术用于我们的新产品(面向广大受众的移动网络应用程序,以及其他需要在某些页面上进行实时聊天的内容).

我按照指南创建了一个非常基本的聊天演示.然后我在我的IIS上部署了该演示,并开始与自己聊天.所有客户都在同一个WiFi网络上.

桌面浏览器或多或少都可以.

但是,iOS 4.2上的Safari和WP7.10上的IE - 它们都很糟糕.有时当我按下"发布"按钮时没有任何反应.有时外发消息被发送到桌面firefox,但是没有传入消息.

也许我错过了一些明显的东西?也许我需要jquery mobile而不是正常的?也许我应该调整IIS/web.config /无论如何,即使通过糟糕的移动互联网,SignalR也会蓬勃发展并开始完美运行?

或者它是否意味着,因为即使在从Web服务器单跳的WiFi上也不起作用,我应该抛弃SignalR并且只是编写一些JavaScript来轮询JSON端点以获取新消息?

提前致谢!

Ari*_*man 6

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

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

在js中添加

$.connection.hub.start({ transport: 'longPolling' }).done(function (myHubConnection) { });
Run Code Online (Sandbox Code Playgroud)

并在Application_Start()中添加

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

  • 请将您的解决方法复制到此帖子. (2认同)

lur*_*low 0

并非所有移动浏览器(例如 android、opera mini)都支持 websocket。您可以在http://www.hanselman.com/blog/YourUsersDontCareIfYouUseWebSockets.aspx找到一个很好的支持浏览器图表。

  • 它不需要 WebSocket。AFAIK,默认情况下 SignalR 使用长轮询。 (7认同)