Comments (6)
Прошу обратить внимание, что в chat2 нужно запускать два скрипта: master.php и worker.php, а не index.php
Нужно посмотреть, что пишут эти 2 скрипта в логи консоли (если выполнялась команда "php master.php start") или в файле nohup (если выполнялась команда "nohup php master.php start &")
from websocket-examples.
Я оба их запускаю, а вот как посмотреть логи теминала я не знаю вроде в ubuntu можно посмотреть только history. Буду смотреть вы пока не закрывайте пожалуйста
from websocket-examples.
Смотрите перерыл весь интернет про логи в терминале ничего не нашел сделал ход лошадью в yii 2 создал два файла console\models\Chat3WebsocketDaemonHandler для мастера и console\models\Chat2WebsocketDaemonHandler для worker. Chat3 запустил через сервис вот его инфа по коду systemctl status websocket.service
ebsocket.service - websocet
Loaded: loaded (/etc/systemd/system/websocket.service; enabled; vendor preset
Active: active (running) since Чт 2016-06-30 19:25:46 MSK; 32min ago
Main PID: 886 (php)
CGroup: /system.slice/websocket.service
└─886 php /var/www/gamer.lc/yii websocket/start chat3
июн 30 19:25:46 sergalas systemd[1]: Started websocet.
lines 1-8/8 (END)
chat2 запускаю так nohup ./yii websocket/start chat2 &
вот что указал в console/config/main.php по аналогии с master.php и worker.php
'websocket' => [
'class' => 'morozovsk\yii2websocket\Connection',
'servers' => [
'chat3' => [
'class' => 'console\models\Chat3WebsocketDaemonHandler',
'pid' => '/tmp/websocket_chat2_master.pid',
'websocket' => 'tcp://127.0.0.1:8004',
'localsocket' => 'tcp://127.0.0.1:8010',
//'master' => 'tcp://127.0.0.1:8020',
//'eventDriver' => 'event'
],
'chat2' => [
'class' => 'console\models\Chat2WebsocketWorkerHandler',
'pid' => '/tmp/websocket_chat2_worker.pid',
'websocket' => 'tcp://127.0.0.1:8012',
//'localsocket' => 'tcp://127.0.0.1:8010',
'master' => 'tcp://127.0.0.1:8004',
]
],
],
соответсветно сокет запушен поэтому обрашение с любой страницы поддерживается.
Вот так я указываю обращение к серверу
ws = new WebSocket("ws://127.0.0.1:8004"); это порт мастера в чем суть я ни где не увидел как мастер взаимодействует с воркером то есть воркер взаимодействует вот здесь
'master' => 'tcp://127.0.0.1:8004', в конфиге но вот где взаимодействует мастрер не знаю. Поэтому и спрашиваю может у вас в настройках где то по другому настроено.
from websocket-examples.
- нельзя просто так скомпоновать два примера и надеяться, что это заработает :)
в коде выше видно, что в качестве мастера используется класс console\models\Chat3WebsocketDaemonHandler , а в качестве воркера класс console\models\Chat2WebsocketWorkerHandler . Они вообще с разных примеров. - выше я уже писал, что если используется команда запуска "nohup php master.php start &" , то логи пишутся в файл nohup
- можно было запустить всё через команды "nohup php master.php start &" и "nohup php worker.php start &" тогда всё писалось бы в nogup
или открыть две консоли и в первой выполнить "php master.php start", а во второй "php worker.php start" тогда ошибки писались в сами консоли и всё сразу было бы видно - механизм мастер-воркер
master.php создаёт серверный сокет с поддержкой телнет клиентов на порту "localsocket"
worker.php создаёт серверный сокет с поддержкой вебсокетклиентов на порту "websocket", а также подключается к сокету на порту "master"
т.е. master.php:localsocket = worker.php:master
worker.php обслуживает вебсокетклиентов и отправляет данные в мастер, который пересылает данные, на остальные воркеры, а те в свою очередь пересылают вебсокетклиентам
from websocket-examples.
Владимир я забыл дописать в Chat3WebsocketDaemonHandler я поместил код из вашего Chat2WebsocketMasterHandler ну просто что бы протестить, и не переписывать сервис который chat3 запускал, извините что не написал, просто у yii2 сразу все ошибки выводит. В nohup.out при nohup ./yii websocket/start chat2 &, nohup ./yii websocket/restart chat2 & и nohup ./yii websocket/куstart chat3 & ни чего не добавляется.
from websocket-examples.
Большое Вам спасибо оказывается надо было действительно называть мастер и воркер и не забывать что запускается в индексе через websocket воркера а localsocet=master можно закрывать
from websocket-examples.
Related Issues (6)
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from websocket-examples.