yii-node-socket не работает для меня

Недавно я пытался интегрировать nodejs с моим существующим проектом, чтобы удостовериться в обновлении каналов. Таким образом, я использовал следующий плагин yii и следовал инструкции:

https://github.com/oncesk/yii-node-socket

Хост и порт: bigcat, 3001 соответственно, и я настроил их в console.php и main.php, как уже упоминалось. Я запустил сервер узла, и журнал показал, что он слушает:

Listening bigcat:3001
Set origin: bigcat:*

На моей стороне клиента у меня есть следующие коды (я создал его как внешний JavaScript):

// create object and connect to web socket server
var socket = new YiiNodeSocket();

socket.on('event.example', function () {
console.log('*****Trigger test.event, is a global event, for all clients*****');
});

socket.onConnect(function () {
socket.room('example').join(function (isConnected, numberOfRoomClients) {
if (isConnected) {
// catch test.event only for this rooom
console.log('***Joined into room example: members count [' + numberOfRoomClients + ']*****');
this.on('example.room.event', function (data) {
console.log('****WORKING****');
});
}
});
});

Моя консоль записывает, что клиент успешно подключен. В тестовом методе homeController у меня есть следующий код:

 $event = Yii::app()->nodeSocket->getFrameFactory()->createEventFrame();
$event->setRoom('example');
$event->setEventName('example.room.event');
$event['type_string'] = 'hello world';
$event['type_array'] = array(1, 2, 3);
$event['type_object'] = array('one' => 1, 'two' => 2);
$event['type_bool'] = true;
$event['type_integer'] = 11;
$event->send();

Когда я вызываю тестовый метод homeController в другом браузере, мой клиент должен иметь возможность прослушивать событие, и консоль должна вывести «IT WORKING». Однако этого не происходит. Мой журнал показывает следующую ошибку:

warn: handshake error INVALID SERVER: server host 127.0.0.1 not allowed for /server
debug: websocket writing 7::/server:undefined

Коды на стороне сервера, кажется, не работают вообще. Могу ли я получить совет о том, как это сделать. Я чувствую, что я близко и все же далеко.

Параметр server.config.js:

module.exports = {
host : 'bigcat',
port : parseInt('3001'),
origin : 'bigcat:*',
allowedServers : ["127.0.1.1"],
dbOptions : {"driver":"dummy","config":[]},
checkClientOrigin : 1,
sessionVarName : 'PHPSESSID'
};

0

Решение

Я думаю, что вам нужно добавить 127.0.0.1 в файле конфигурации yii -> раздел конфигурации сокета узла -> разрешен параметрServerAddresses

Как это ^

'nodeSocket' => array(
'class' => 'application.extensions.yii-node-socket.lib.php.NodeSocket',
'host' => 'localhost',  // default is 127.0.0.1, can be ip or domain name, without http
'port' => 3001      // default is 3001, should be integer,
<b>'allowedServerAddresses' => array('127.0.0.1')</b>
)

А ты можешь показать node-socket/lib/js/server/server.config.js конфигурационный файл?

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector