2017-01-19 169 views
1

Xamarin的SignalR無法通過Websockets工作。Xamarin通過Websockets發送消息SignalR

我有一個Web服務,由SygnalR通過websockets進行消息傳遞。

我可以在Xamarin中接收消息而無需對Xamarin實施SignalR嗎?

在Xamarin客戶端使用SignalR很重要嗎?

回答

1

如果您在服務器中實施了SignalR集線器,則可以在Xamarin中使用SignalR Client nuget。該傳輸將默認爲SSE(服務器發送事件),但它工作得很好。

在客戶端實現一個websocket只是爲了連接到SignalR服務器根本沒有意義,除非你確實需要使用WebSockets而不是SSE。

+0

Xamarin中的SignalR是否可以通過Websockets工作? – Atlantis

+0

它不會通過網絡套接字工作,它將通過SSE工作,但它會工作 – xleon

1

SignalR使用傳輸連接到服務器。 SignalR客戶端的可移植版本不支持webSocket傳輸,因爲沒有可用的WebSocket客戶端的可移植版本。這很好,因爲還有兩個傳輸 - longPolling和serverSentEvents可用於與服務器通信。

您無法使用裸webSockets連接到SignalR 2.x服務器。有一個protocol需要遵循,如果客戶不遵循這個protocol其請求將被拒絕。 如果您絕對需要使用websocket,則可以通過實現IClientTransport接口來實現自己的websockets傳輸,並將其傳遞給Start方法。這就是UWP支持webSockets傳輸的方式。 Here是我需要編寫的所有代碼。