Я хочу реализовать чат в своем приложении Android с помощью SignalR, и я загружаю этот пример из asp.net: https://www.asp.net/signalr/overview/getting-started/tutorial-getting-started-with-signalr Но я не могу присоединиться к нему, используя localhost через HubConnection. Я попытался использовать мой IP-адрес и номер порта, но он не работает. Кто-нибудь имеет опыт с этим?
Спасибо!
Предполагая, что ваш сервер приложений - это IIS Express, он по умолчанию не работает из-за ограничений сети или даже брандмауэра.
Прежде всего, как вы уже поняли, клиенту нужно подключиться к вашему ip-устройству, а не к localhost. Что-то вроде http://x.x.x.x:port/signalr
Затем вам нужно убедиться, что ваша машина доступна с мобильного телефона или эмулятора: откройте браузер в телефоне и введите известный адрес, например http://x.x.x.x:port/somethingThatExists
.
Если этот URL недоступен:
Откройте службу PowerShell на машине, запускающей IIS-Express, и запустите ее: netsh http add urlacl url=http://{your server ip}:{port}/ user=everyone
. (если ваш системный язык не является английским, например: испанский, измените "все" на "todos" )
Откройте файл applicationhost.config
в своем решении Solution/.vs/config/applicationhost.config
и найдите приложение xml node. Что-то вроде <site name="YourAppName" id="1">...</site>
. По умолчанию привязка localhost
вы увидите. Добавьте новый с фактическим ip: <binding protocol="http" bindinginformation="*:port:x.x.x.x"></binding>
(убедитесь, что ip/port правильный. I.e: *:57457:192.168.0.57
)
Перезагрузите IIS Express и повторите попытку (нет необходимости перезагружать систему)