2012-03-01 28 views
8

Estoy evaluando la tecnología SignalR para su uso en nuestro nuevo producto (aplicación web móvil para el amplio público, entre otras cosas, necesita un chat en tiempo real en algunas páginas).SignalR en la web móvil?

He seguido the guide para crear una demostración de chat muy básica. Luego implementé la demostración en mi IIS y comencé a chatear solo. Todos los clientes estaban en la misma red WiFi.

Los navegadores de escritorio funcionaron más o menos bien.

Sin embargo, Safari en iOS 4.2 e IE en WP7.10 - ambos apestaron. A veces no sucedía nada cuando presioné el botón "publicar". A veces los mensajes salientes se enviaban bien al escritorio de Firefox, sin embargo no había mensajes entrantes.

Tal vez me falta algo obvio? Tal vez necesito jquery móvil en lugar de la normal? Quizás debería simplemente sintonizar el IIS/web.config/lo que sea, y el SignalR florecerá y comenzará a funcionar sin problemas incluso a través del Internet móvil.

¿O quiere decir que, dado que no funciona aunque esté en WiFi dentro de un solo salto del servidor web, debería descartar SignalR y simplemente escribir algo de JavaScript para sondear un punto final JSON para nuevos mensajes?

¡Gracias de antemano!

+1

yo también he encontrado con este problema. Muy interesado en cualquier respuesta. (¿No hay ningún botón de suscripción, así que no es necesario que deje un comentario) – tgmdbm

+1

@tgmdbm puede seguir la pregunta por RSS. La fuente RSS para esta pregunta es: http://stackoverflow.com/feeds/question/9509124 –

Respuesta

0

No todos los navegadores móviles (por ejemplo, android, opera mini) admiten websockets. Encontrará un buen cuadro de navegadores compatibles en http://www.hanselman.com/blog/YourUsersDontCareIfYouUseWebSockets.aspx

+7

No necesita WebSockets. AFAIK, por defecto, SignalR usa un sondeo largo. – Soonts

+0

Oh, lo siento, tienes razón. SignalR ** puede ** usar WebSockets siempre que el navegador lo admita, de lo contrario, utiliza encuestas largas. – lurkerbelow

6

He estado desarrollando una aplicación con phonegap (que significa que utiliza el navegador Safari) y SignalR para Android e iPhone. El principal problema que tuve fue con iOS 6.x porque SignalR no se conectó con la configuración predeterminada. Encontré una solución para eso y lo había explicado here. Avíseme si lo encuentra útil.

Este código simulará una conexión, buscará mensajes, desconectará y esperará 5 segundos para resolver el problema de iOS.

En js añadir

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

y en Application_Start() añadir

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

Copie su solución aquí también en esta publicación. –

+0

Hecho. He editado la publicación con el código. –

+0

Saludos, ahora es adecuado para +1. :) –

Cuestiones relacionadas