Error during WebSocket handshake после переноса на сервер

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
ivanmangetov
Сообщения: 3
Зарегистрирован: 2017.03.23, 09:36

Error during WebSocket handshake после переноса на сервер

Сообщение ivanmangetov » 2017.03.23, 09:42

На локальной машине задача отрабатывает на отлично, есть контроллер, который подключается к порту

Код: Выделить всё

class SocketController extends Controller
{
    public function actionStartSocket($port=8081)
    {
        $server = IoServer::factory(
            new HttpServer(
                new WsServer(
                    new SocketServer()
                )
            ),
            $port
        );
        $server->run();
    }
}
а на стороне пользователя к нему подключается и случает web socket

Код: Выделить всё

    socket = new WebSocket('ws://localhost:8081');
    socket.onopen = function(e) {
    };
Однако после переноса на рабочий сервер, при смене localhost на IP_Сервера или NAME_сервера - выдает ошибку

WebSocket connection to 'ws://nameserver:8081/' failed: Error during WebSocket handshake: Unexpected response code: 400

помогите пожалуйста решить проблему. Системный администратор говорит:

Сокет действительно прослушивается на TCP порту 8081

И он доступен снаружи

Как вы можете видеть, вам возвращается ответ с кодом 400.

Я думал что проблема в nginx, как пишут по этой проблеме в интернете, но то не так
Последний раз редактировалось ivanmangetov 2017.03.23, 09:46, всего редактировалось 1 раз.

Onotole
Сообщения: 1808
Зарегистрирован: 2012.12.24, 12:49

Re: Error during WebSocket handshake после переноса на сервер

Сообщение Onotole » 2017.03.23, 09:45

запускаете на 8081, а проверяете на 8060

ivanmangetov
Сообщения: 3
Зарегистрирован: 2017.03.23, 09:36

Re: Error during WebSocket handshake после переноса на сервер

Сообщение ivanmangetov » 2017.03.23, 09:47

Onotole писал(а):
2017.03.23, 09:45
запускаете на 8081, а проверяете на 8060
Это в описании вопроса у меня ошибка (сейчас поправил), с этим проблемы нет, порт слушаю верный

Onotole
Сообщения: 1808
Зарегистрирован: 2012.12.24, 12:49

Re: Error during WebSocket handshake после переноса на сервер

Сообщение Onotole » 2017.03.23, 10:50

Ну разбирайтесь, почему он отдает вам 400 ошибку.
Кстати, вы наследуетесь от какого контроллера? От yii\web\Controller?

ivanmangetov
Сообщения: 3
Зарегистрирован: 2017.03.23, 09:36

Re: Error during WebSocket handshake после переноса на сервер

Сообщение ivanmangetov » 2017.03.23, 13:48

Onotole писал(а):
2017.03.23, 10:50
Кстати, вы наследуетесь от какого контроллера? От yii\web\Controller?
наследуюсь от контроллера use yii\console\Controller;

Ответить