2017-01-19 2 views
1

SignalR для Xamarin не имеет возможности работать через Websockets.Передача сообщений Xamarin через Websockets SignalR

У меня есть веб-сервис с сообщениями SygnalR через websockets.

Могу ли я получить сообщение в Xamarin без внедрения SignalR в Xamarin?

Важно ли иметь SignalR на стороне клиента Xamarin?

ответ

1

Если вы внедрили концентратор SignalR в своем терминале, вы можете использовать SignalR Client nuget в Xamarin. По умолчанию транспорт будет SSE (Server Sent Events), но он работает очень хорошо.

Реализация websocket в клиенте только для подключения к серверу SignalR не имеет никакого смысла, если только вам не нужно использовать WebSockets вместо SSE.

+0

Имеет ли SignalR в Xamarin хотя Websockets? – Atlantis

+0

Он не будет работать через сетевые сокеты, он будет работать через SSE, но он будет работать – xleon

1

SignalR использует транспорты для подключения к серверу. Портативная версия клиента SignalR не поддерживает перенос веб-сокетов, поскольку нет доступной переносимой версии клиента WebSocket. Это нормально, так как есть еще два транспорта - longPolling и serverSentEvents, которые можно использовать для общения с сервером.

Вы не можете подключиться к серверу SignalR 2.x с голыми веб-сокетами. Существует protocol, которому необходимо следовать, и если клиент не соблюдает этот код protocol, его запросы будут отклонены. Если вам абсолютно необходимо использовать websockets, вы можете реализовать свой собственный перенос веб-сайтов, реализовав интерфейс IClientTransport и передав его методу Start. Это то, как поддерживается перенос webSockets в UWP. Here - это весь код, который мне нужно написать.

Смежные вопросы