Closed tselishev-semen closed 10 years ago
Добрый день, сервер скорее всего работает
проверте
$> pgrep node
$> ps aux | grep node
[vagrant@localhost protected]$ pgrep node 1863 [vagrant@localhost protected]$ ps aux | grep node vagrant 1863 0.1 6.0 830320 28380 pts/0 Sl 15:18 0:01 node /vagrant/protected/vendor/oncesk/yii-node-socket/lib/php/../js/server/server.js vagrant 1928 0.0 0.1 103260 872 pts/0 S+ 15:51 0:00 grep node [vagrant@localhost protected]$
сервер исправно работает, еще интерестно
$> netstat -tulpn
$> ifconfig
на вагрант запускать не приходилось так что сам с этим впервые сталкиваюсь :)
[vagrant@localhost protected]$ netstat -tulpn
(Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.) Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:54260 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN -
tcp 0 0 127.0.0.1:3001 0.0.0.0:* LISTEN 1863/node
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN -
tcp 0 0 :::111 :::* LISTEN -
tcp 0 0 :::80 :::* LISTEN -
tcp 0 0 :::40561 :::* LISTEN -
tcp 0 0 :::22 :::* LISTEN -
tcp 0 0 ::1:25 :::* LISTEN -
udp 0 0 0.0.0.0:111 0.0.0.0:* -
udp 0 0 0.0.0.0:68 0.0.0.0:* -
udp 0 0 0.0.0.0:840 0.0.0.0:* -
udp 0 0 0.0.0.0:859 0.0.0.0:* -
udp 0 0 0.0.0.0:47326 0.0.0.0:* -
udp 0 0 :::111 :::* -
udp 0 0 :::47012 :::* -
udp 0 0 :::840 :::* -
[vagrant@localhost protected]$ ifconfig eth0 Link encap:Ethernet HWaddr 08:00:27:62:52:B8
inet addr:10.0.2.15 Bcast:10.0.2.255 Mask:255.255.255.0 inet6 addr: fe80::a00:27ff:fe62:52b8/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:3709 errors:0 dropped:0 overruns:0 frame:0 TX packets:5808 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:870302 (849.9 KiB) TX bytes:3992199 (3.8 MiB)lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:178 errors:0 dropped:0 overruns:0 frame:0 TX packets:178 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:16231 (15.8 KiB) TX bytes:16231 (15.8 KiB)
Вероятнее я что - то не так настроил:)
получается что сокет слушает локальное соединение, попробуйте в конфиге выставить айпи адрес 10.0.2.15 вместо localhost
и перезапустить сервер
тоже самое, только скрипт, с 10.0.2.15 пытается получить, но там без шансов что либо получить:) т.к сервер только на виртуалке запущен,
Настройка apache может как - то влиять на работоспособность? SendRoomEvent и SendRoomEvent работают вроде, по крайней мере без ошибок выполняются
покажти логи сервера runtime/socket-transport.server.log , если эти ивенты работают там должны быть логи
info: socket.io started Listening 10.0.2.15:3001 Set origin: 10.0.2.15:* debug: client authorized info: handshake authorized JmoptAlF66oismbZ2Rac debug: setting request GET /socket.io/1/websocket/JmoptAlF66oismbZ2Rac debug: set heartbeat interval for client JmoptAlF66oismbZ2Rac debug: client authorized for debug: websocket writing 1:: debug: client authorized for /server debug: websocket writing 1::/server info: transport end (undefined) debug: set close timeout for client JmoptAlF66oismbZ2Rac debug: cleared close timeout for client JmoptAlF66oismbZ2Rac debug: cleared heartbeat interval for client JmoptAlF66oismbZ2Rac debug: discarding transport debug: client authorized info: handshake authorized 73gix2ZTSZFwurhF2Rad debug: setting request GET /socket.io/1/websocket/73gix2ZTSZFwurhF2Rad debug: set heartbeat interval for client 73gix2ZTSZFwurhF2Rad debug: client authorized for debug: websocket writing 1:: debug: client authorized for /server debug: websocket writing 1::/server info: transport end (undefined) debug: set close timeout for client 73gix2ZTSZFwurhF2Rad debug: cleared close timeout for client 73gix2ZTSZFwurhF2Rad debug: cleared heartbeat interval for client 73gix2ZTSZFwurhF2Rad debug: discarding transport
с localhost вместо 10.0.2.15 аналогичная тематика
получается, что коннект из php есть
в браузере что нибудь изменилось если использовать ip или может localhost заработал)?
внешне никаких измнений, страничка сначала подвисает(ожидает загрузки скрипта) Потом как допустимый таймаут проходит, грузится как может. И в консоле выдает io is not defined client.js:647 Firebug пишет о неудачной загрузке скрипта.
По vagrant и websocket только вот этот пост есть https://stellartalk.org/topic/1288-vagrant-and-websocket-connection/ и там похоже тоже не все так солнечно :)
Попробую на ноде + вагрант хелло ворлд с сокетами сделать, может прояснит в чем дело, больше уже никаких идей нет) давно мучаюсь)
эммм, а в браузре какой адресс сайта? домен? localhost или другой?
лучше использовать один и тот же домен если использовать допустим test
то в браузере test то в /etc/hosts можно добавить айпи который у вас в вагранте этому домену
ну в любом случае попробуйте hello world
http://localhost:8080/ на моей машине. http://localhost:80/ на виртуалке Немного вопрос не понял) В вагранте есть несколько способов доступа к виртуалке: по заданному ip, пробрасывание портов... У меня просто порты пробрасываются, и доступ к машине по localhost всегда
конечно интересно что php без проблем коннектиться(в дебаге еще раз убедился), а клиент не может получить ресурс с сервера
.htaccess deny from all
Или что то похожее не может быть причиной случайно?
не, htaccess тут не мешает и не поможет, 3001 порт также проброшен, эмм, если будет время попробую у себя такую ситуацию создать
скрипт который не подгружается загружается с 3001 порта по localhost, попробуйте в браузере набрать http://10.0.2.15:3001/socket.io/socket.io.js и http://localhost:3001/socket.io/socket.io.js
Проблема решена. 1 часть. в Vagrant вместо "forwarded_port" необходимо использовать "private_network ". https://docs.vagrantup.com/v2/networking/private_network.html Затем в конфиге:
'host' => 'ip приватной сети указанной в вагранте" 'port' => 3001
2.часть возможен баг Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://localhost:3001/socket.io/1/?t=1410631220488. This can be fixed by moving the resource to the same domain or enabling CORS.
Необходимо почистить assets
Возможно что vagrant как то неполноценно пробрасывает порты. Был установлен проброс 80 на 8080 и 3001 на 3001 в такой связке не работало, просто не грузило http://localhost:3001/socket.io/socket.io.js Вобще помогла вот эта статья http://forum.bittorrent.com/topic/30058-cross-origin-request-blocked/ натолкнула на мысль что необходимо избавиться от порта. И проблема возможна связана с тем, что приходится указывать явно порт localhost:8080
угу, если все работает - замечательно! :)
каким то образом заработало) спасибо за потраченное время)
кстати в examples которые для php есть пару багов так как естеншн обновился а примеры нет =)
пожалуйста
ну там только два бага я нашел пока) Yii::app()->nodeSocket->getFrameFactory()->createEventFrame(); заместо Yii::app()->nodeSocket->createEventFrame(); несложно было исправить)
Добрый вечер. Наткнулся на проблему. использовал метериалы демки в папке examples/events. Выдает ошибку при открытии http://127.0.0.1/nsEventExample/eventListener ReferenceError: io is not defined client.js:647 Скрипт http://localhost:3001/socket.io/socket.io.js не грузится с сервера, вот и io не видит.
Ставил все по инструкции, только скачивал через composer и запускаю все на виртуалке с помощью vagrant(там дополнительно прокинул 3001 порт) $ php yiic node-socket start запускается и пишет все отлично. лог:
На самой виртуалке
wget -O - http://localhost:3001 выдает
nodejs я как понимаю почему то не запустился. Нужна помощь)