2012-03-01 3 views
8

신제품 (일부 사용자의 경우 실시간으로 채팅해야하는 광범위한 사용자를 대상으로하는 모바일 웹 애플리케이션)에서 사용하기 위해 SignalR 기술을 평가하고 있습니다.모바일 웹의 SignalR?

나는 매우 기본적인 채팅 데모를 만들기 위해 the guide을 따라갔습니다. 그런 다음 IIS에 데모를 배포하고 직접 채팅을 시작했습니다. 모든 클라이언트가 동일한 WiFi 네트워크에 있습니다.

데스크톱 브라우저가 다소간 정상적으로 작동합니다.

그러나 Safari는 iOS 4.2에, IE는 WP7.10에 있습니다. 둘 다 빨려 들었습니다. "게시"버튼을 눌렀을 때 때로는 아무런 변화가 없었습니다. 때때로 발신 메시지가 데스크톱 파이어 폭스로 전송되었지만 수신 메시지가 없었습니다.

어쩌면 나는 명백한 무엇인가 놓치고 있습니까? 어쩌면 일반 jquery mobile 대신 jquery mobile이 필요할까요? 어쩌면 나는 IIS/web.config /를 조정해야하고, SignalR은 번뜩이는 모바일 인터넷을 통해 완벽하게 작동하기 시작할 것입니다.

웹 서버의 단일 홉 내에서 WiFi를 사용하는 중에도 작동하지 않기 때문에 SignalR을 제거하고 JSON 끝점에서 새 메시지를 폴링하도록 JavaScript를 작성해야합니까?

미리 감사드립니다.

+1

나도이 문제가 발생했을 추가) (

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

및 위해 Application_Start에서

을 추가합니다. 모든 답변에 매우 관심이 있습니다. (구독 버튼이 없으므로 덧글을 남길 필요가 없습니다) – tgmdbm

+1

@tgmdbm RSS로 질문을 따를 수 있습니다. 이 질문에 대한 RSS 피드는 다음과 같습니다. http://stackoverflow.com/feeds/question/9509124 –

답변

0

일부 모바일 브라우저 (예 : Android, 오페라 미니)가 웹 소켓을 지원하는 것은 아닙니다. http://www.hanselman.com/blog/YourUsersDontCareIfYouUseWebSockets.aspx

+7

웹 소켓이 필요 없습니다. AFAIK, 기본적으로 SignalR은 긴 폴링을 사용합니다. – Soonts

+0

오, 정말 미안해. 네 말이 맞아. SignalR **은 브라우저가 지원하는 한 WebSocket을 사용할 수 있습니다. 그렇지 않으면 긴 폴링을 사용합니다. – lurkerbelow

6

Android 및 iPhone 용으로 PhoneGap (즉, Safari 브라우저를 사용한다는 의미) 및 SignalR을 사용하여 앱을 개발하고 있습니다. 내가 가진 주요 문제는 SignalR이 기본 설정과 연결되지 않았기 때문에 iOS 6.x에서 발생했습니다. 나는 그것을 해결할 방법을 찾았고 그것을 설명했다. here. 유용하다고 생각되면 알려주세요.

이 코드는 iOS 문제를 해결하기 위해 연결 시뮬레이션, 메시지 확인, 연결 해제 및 5 초간 대기합니다. JS에서

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

해결 방법을이 게시물에도 복사하십시오. –

+0

완료. 나는 코드로 포스트를 편집했다. –

+0

건배, 이제 +1에 적합합니다. :) –