Я отправил приложение Phoenix на Heroku, и оно работает нормально, за исключением подключения к каналу из iOS.
Каналы через браузер работают как положено.
В iOS я использую PhoenixWebSocket, а в dev env подключение к локальному приложению Phoenix работает должным образом.
Проблема, с которой я сталкиваюсь, заключается в том, что когда я указываю URL-адрес веб-сокета на приложение Heroku, я получаю следующую ошибку:
Error Domain=WebSocket Code=301 "Invalid HTTP upgrade" UserInfo={NSLocalizedDescription=Invalid HTTP upgrade}
Просматривая сообщение об ошибке ранее сегодня, я нашел сообщение от Криса МакКорда, я думаю, что это было, в котором говорилось, что это сообщение об ошибке является результатом отказа сервера обновить запрос.
Однако я осмотрел Heroku и нашел это; Функции веб-сокетов поддерживаются для всех приложений.
Поэтому я не понимаю, связана ли моя проблема со стороной iOS или со стороны Heroku.
Я отправил пример Криса приложение чата в Heroku и попытался подключиться к демонстрационному приложению, которое поставляется с PhoenixWebSocket, но получить ту же ошибку.
Кому-нибудь еще удалось заставить запросы веб-сокетов работать между iOS и Heroku, на котором размещено приложение Phoenix?
Кто-нибудь знает, есть ли что-то другое, что мне нужно сделать с запросом в iOS, прежде чем пытаться присоединиться к каналу? Или, может быть, в настройке Heroku есть что-то, связанное с веб-сокетами, что я пропустил?
URL для запроса в iOS:
let url = NSURL(string: "ws://app-name-32793.heroku.com/socket/websocket")!
Большое спасибо всем, кто может помочь, и, пожалуйста, дайте мне знать, если есть что-то еще, что я могу предоставить, чтобы помочь.
Павел