Giter Site home page Giter Site logo

Comments (6)

morozovsk avatar morozovsk commented on May 25, 2024

Прошу обратить внимание, что в chat2 нужно запускать два скрипта: master.php и worker.php, а не index.php
Нужно посмотреть, что пишут эти 2 скрипта в логи консоли (если выполнялась команда "php master.php start") или в файле nohup (если выполнялась команда "nohup php master.php start &")

from websocket-examples.

Sirgalas avatar Sirgalas commented on May 25, 2024

Я оба их запускаю, а вот как посмотреть логи теминала я не знаю вроде в ubuntu можно посмотреть только history. Буду смотреть вы пока не закрывайте пожалуйста

from websocket-examples.

Sirgalas avatar Sirgalas commented on May 25, 2024

Смотрите перерыл весь интернет про логи в терминале ничего не нашел сделал ход лошадью в 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.

morozovsk avatar morozovsk commented on May 25, 2024
  1. нельзя просто так скомпоновать два примера и надеяться, что это заработает :)
    в коде выше видно, что в качестве мастера используется класс console\models\Chat3WebsocketDaemonHandler , а в качестве воркера класс console\models\Chat2WebsocketWorkerHandler . Они вообще с разных примеров.
  2. выше я уже писал, что если используется команда запуска "nohup php master.php start &" , то логи пишутся в файл nohup
  3. можно было запустить всё через команды "nohup php master.php start &" и "nohup php worker.php start &" тогда всё писалось бы в nogup
    или открыть две консоли и в первой выполнить "php master.php start", а во второй "php worker.php start" тогда ошибки писались в сами консоли и всё сразу было бы видно
  4. механизм мастер-воркер
    master.php создаёт серверный сокет с поддержкой телнет клиентов на порту "localsocket"
    worker.php создаёт серверный сокет с поддержкой вебсокетклиентов на порту "websocket", а также подключается к сокету на порту "master"
    т.е. master.php:localsocket = worker.php:master

worker.php обслуживает вебсокетклиентов и отправляет данные в мастер, который пересылает данные, на остальные воркеры, а те в свою очередь пересылают вебсокетклиентам

from websocket-examples.

Sirgalas avatar Sirgalas commented on May 25, 2024

Владимир я забыл дописать в Chat3WebsocketDaemonHandler я поместил код из вашего Chat2WebsocketMasterHandler ну просто что бы протестить, и не переписывать сервис который chat3 запускал, извините что не написал, просто у yii2 сразу все ошибки выводит. В nohup.out при nohup ./yii websocket/start chat2 &, nohup ./yii websocket/restart chat2 & и nohup ./yii websocket/куstart chat3 & ни чего не добавляется.

from websocket-examples.

Sirgalas avatar Sirgalas commented on May 25, 2024

Большое Вам спасибо оказывается надо было действительно называть мастер и воркер и не забывать что запускается в индексе через websocket воркера а localsocet=master можно закрывать

from websocket-examples.

Related Issues (6)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.