• Главная
  • Контакты
Подписаться:
  • Twitter
  • Facebook
  • RSS
  • VK
  • PushAll
logo

logo

  • Все
    • Положительные
    • Отрицательные
  • За сегодня
    • Положительные
    • Отрицательные
  • За вчера
    • Положительные
    • Отрицательные
  • За 3 дня
    • Положительные
    • Отрицательные
  • За неделю
    • Положительные
    • Отрицательные
  • За месяц
    • Положительные
    • Отрицательные
  • За год
    • Положительные
    • Отрицательные
  • Сортировка
    • По дате (возр)
    • По дате (убыв)
    • По рейтингу (возр)
    • По рейтингу (убыв)
    • По комментам (возр)
    • По комментам (убыв)
    • По просмотрам (возр)
    • По просмотрам (убыв)
Главная
  • Все
    • Положительные
    • Отрицательные
  • За сегодня
    • Положительные
    • Отрицательные
  • За вчера
    • Положительные
    • Отрицательные
  • За 3 дня
    • Положительные
    • Отрицательные
  • За неделю
    • Положительные
    • Отрицательные
  • За месяц
    • Положительные
    • Отрицательные
  • Главная
  • Веб сокеты или hello world по новому

Веб сокеты или hello world по новому

04.05.2017 13:58
lnroma 3 533 Источник
PHP*
Я не программист, Я любить заюзать готовые решение и получить результат в кратчайшие сроки. Сегодня, Я вам расскажу как я быстро поднял чатик на веб сокетах. И конкурс о сиськах в Московских пробках.
И так «hello world» с использованием ratchet socketo.me кому интересно прошу под кат

1. И так начнём с того что установим composer и создадим директорию с проэктом к примеру myProject.
2. Создаём composer.json с содержимым
{
    "autoload": {
        "psr-0": {
            "MyApp": "src"
        }
    },
    "require": {
        "cboden/ratchet": "0.3.*"
    }
}

И выполняем composer install
3. Создадим директорию src/MyApp и обработчик Chat
<?php
namespace MyApp;

require_once('Db.php');

use Ratchet\MessageComponentInterface;
use Ratchet\ConnectionInterface;
use MyApp\Db;

class Chat implements MessageComponentInterface
{
    protected $clients;

    public function __construct()
    {
        $this->clients = new \SplObjectStorage;
    }

    public function onOpen(ConnectionInterface $conn)
    {
        // устанавливаем новое соеденение
        $this->clients->attach($conn);
    }

    // событие отправки сообщения в сокет
    public function onMessage(ConnectionInterface $from, $msg)
    {  
        // отправляем сообщение всем тем кто присоеденился
        foreach ($this->clients as $client) {
            $client->send($msg);
        }
    }

    // закрытия соеденения
    public function onClose(ConnectionInterface $conn)
    {
        $this->clients->detach($conn);
    }
    
    // обработка ошибок
    public function onError(ConnectionInterface $conn, \Exception $e)
    {
        $conn->close();
    }
}


4. Теперь создадим директорию bin сервер server.php

<?php
use Ratchet\Server\IoServer;
use Ratchet\Http\HttpServer;
use Ratchet\WebSocket\WsServer;
use MyApp\Chat;

require dirname(__DIR__) . '/vendor/autoload.php';
$server = IoServer::factory(
    new HttpServer( // запускаем http сервер
        new WsServer( // websocket сервер
            new Chat() // обработчик событий
        )
    ),
    8080,
    '127.0.0.1'
);

$server->run();


5. Для соединения страницы с сокетом достаточно вызова следующей функции js
var conn = new WebSocket('ws://127.0.0.1:8080');

для того что бы отловить сообщения от сокета на необходимо по вешать слушателя на сообщение onmessage последнего
conn.onmessage = function(e) {
     console.log(e.data);
}

в data нам придёт ответ отправленный сервером в данном случае строка
conn.send('hello world')
так мы можем отправить сообщение на сервер.
6. Запуск этого добра:
— Запускаем сервер php bin/server.php
— Открываем страничку и готово

В качестве заключения приведу ссылки:
1. Чатик на сокетах sidimvprobke.com
2. git репазиторий github.com/lnroma/sidimvprobke
3. конкурс — конкурс с сиськами (тест на сообразительность, ведь завтра пятница)

не сложно правда ли?
Поделиться с друзьями
-->

Комментарии (3)


  1. ishef
    04.05.2017 17:14
    #10203604
    +2

    Не могу определить что хуже — грамматика или смысл.


  1. vlreshet
    04.05.2017 17:15
    #10203606

    Ээээ… ммм… и?


  1. rapita
    04.05.2017 17:30
    #10203622
    +1

    Это быстрый перевод Creating Your First Application из документации?

МЕТКИ

  • Хабы
  • Теги

php

WebSockets

server

СЕРВИСЫ
  • logo

    CloudLogs.ru - Облачное логирование

    • Храните логи вашего сервиса или приложения в облаке. Удобно просматривайте и анализируйте их.
Все публикации автора
  • Модные направления в разработке

    • 16.05.2017 15:50

    Веб сокеты или hello world по новому

    • 04.05.2017 13:58

    Информационая безопасность в сфере телекома на примере Megafon'а -5

    • 17.10.2016 14:45

    GUI для php, или скрещиваем написанное расширение с скриншотером +2

    • 04.10.2016 23:48

    Пишем расширение с помощью библиотеки php-cpp для php7 +18

    • 01.10.2016 21:46

    Разработка addon firefox, или ещё один скриншотер с помощью webExtensions и addon sdk

    • 26.09.2016 13:31

    Разработка расширения для firefox, или мой первый опыт, на примере скриншотера +18

    • 23.09.2016 18:07

    Системные скрипты на php для linux, пишем скриншотер +2

    • 22.09.2016 14:10

    Разработка сервера на php и системных скриптов -2

    • 17.09.2016 15:51

    В России заблокировали сайты PornHub и YouPorn

    • 14.09.2016 15:43

Подписка


ЛУЧШЕЕ

  • Сегодня
  • Вчера
  • Позавчера
06:00

Большой куш Сбера – громкие заголовки на чужом коде +15

06:08

DIY пылесос для ЧПУ 3018 +7

05:00

Программу для просмотра любого файла из букв +7

06:30

Как преобразовать огромный монорепозиторий с автотестами в микросервисы +5

06:01

«Инферит ИТМен» 6.4: подчистили механизмы сбора данных и перевели агентов «на новый уровень» +5

00:04

Как приручить iText8: превращаем HTML в PDF без седых волос +5

05:09

Хорошо парсим NMEA0183 +4

02:51

Больше, чем форк: разбор протокола Algebra Finance +4

00:03

Сад Ноктиса +4

06:28

Чтение на выходные: «Эстетика как код бренда. Привлекайте клиентов совершенным бизнес-продуктом» Рикардо Илли +3

08:22

Зачем мы спим? 10 правил сна, которые меняют жизнь +2

08:05

Иногда компьютеры ошибаются. Воспроизводим тот самый баг на $475 000 000 +2

05:01

Российские физики научились восстанавливать скрытые детали на зашумленных интерферограммах с высокой точностью +2

08:14

Как записать видео с экрана: простые способы для новичков +1

08:02

Один алгоритм вместо 12 правил или как запомнить формы английских времён раз и навсегда, не открывая учебник +1

07:56

Как я потерял 34 млн. рублей на крахе Thrasio: разбор пузыря с оценкой в $10 млрд +1

07:08

Умеет ли Gemini в TTS и транскрибацию? +1

07:05

ИИ и мэйнфреймы: от наследия к конкурентному преимуществу +1

09:08

Техрепорт Alice AI: как мы создавали новое поколение моделей для самого популярного ИИ-ассистента в России +47

08:05

Разработка USB-клавиатуры без поиска легкого пути +34

08:00

Lord of the Prints: Filament Fellowship. Путешествие в мир филаментов для FDM-печати +32

07:19

Интеграция 1С в личный кабинет и ERP-систему +31

09:35

Как функциональное программирование изменило фронтенд и почему отрасль возвращается к платформе +28

14:25

Как сделать реверс-инжиниринг аналоговой микросхемы: FM-радиоприёмник TDA7000 +24

10:57

Массовый психоз или LLM-индуцированный бред +24

09:01

Как установить почтовый сервер под Debian +24

13:01

Красивые китайские звукосниматели для электрогитары +22

05:52

Главная проблема использования ИИ (Иллюзии Интеллекта) при разработке ПО +22

07:56

Формат файлов, который не удаётся взломать уже 20 лет +21

09:30

До запрета иностранных слов в России осталось меньше трех месяцев +20

04:40

Как я потерял деньги, когда уехал из России. История айтишника про налоги и крипту +20

08:26

Как системному аналитику перейти в дата-аналитику: советы из личного опыта +19

08:26

Как системному аналитику перейти в дата-аналитику: советы из личного опыта +19

07:05

Про эффект Дворака и не только +19

08:30

OpenIDE Pro: ответ на запросы бизнеса и разработчиков одновременно +18

07:01

Из мёртвой зоны — в зелёную: как мы запускали техподдержку для системы утилизации токсичных отходов +18

07:12

ИИ: как триллионы долларов, спрятанные в офшорах, стали топливом для самого опасного пузыря в истории +17

14:55

Ускорение планирования JOIN’ов — до 16 раз быстрее +15

09:01

Тёмная история IPv6: почему мы 30 лет «переходим», но так и не перешли +137

10:53

Self-hosted связь со своей семьей +94

06:46

Новый вид мошенничества: шантаж с блокировкой всех ваших карт +67

08:05

КПМ 32/16 «Кировец» — электрический монстр времен СССР +63

10:01

Что выбрать новичку для домашнего веб-сервера: Nginx, Caddy или Apache +53

12:22

Как устроены воздушные дороги в небе +52

11:47

Про душные истории о «Зумерах» и необоснованных претензиях +39

08:00

Методы массивов. Часть 1 +35

07:23

Москва – CASIOпея. Вспоминаем уникальный винтажный ноутбук Cassiopeia FIVA MPC-102 +35

13:01

Как я воссоздал веб-сайт 1996 года при помощи Claude +33

07:00

Что стало с лабораторией НИИ полимеров после развала СССР +31

09:28

Ищем выход из лабиринтов RISC-V ISA: ускорение инференса с тензорным компилятором и JIT-ассемблером +30

14:27

История Нового года: галопом по Европам и не только +29

08:47

Острая генетическая недостаточность: о перспективах модификации генома для колонизации космоса +27

07:06

Как выбрать шрифты для веба: разговор с дизайнером шрифтов +24

06:52

Как мы сделали платформу для собеседований Enterly +23

05:46

Как Nvidia может случайно уничтожить 90% собственного рынка (и даже не заметить этого) +22

02:51

Самообучение против курсов для ребенка. В чём сила, брат? +22

18:11

Машина времени: Что предлагалось дарить детям на Рождество в США в 1980 году +19

11:27

Маленькие, но мощные оптимизации: как pgpro_planner спасает запросы из мира 1С +18

ОБСУЖДАЕМОЕ

  • Тёмная история IPv6: почему мы 30 лет «переходим», но так и не перешли +137

    • 430   58000

    Как Nvidia может случайно уничтожить 90% собственного рынка (и даже не заметить этого) +22

    • 106   9600

    Цифровой рубль: новая глава в истории денег. Объясняем, как он работает и что им можно будет оплатить +6

    • 93   12000

    Новый вид мошенничества: шантаж с блокировкой всех ваших карт +67

    • 91   11000

    До запрета иностранных слов в России осталось меньше трех месяцев +20

    • 79   9800

    Автоматизация кухонной вытяжки путем замены процессора управления на ESP32 с ESPHome +17

    • 63   12000

    Нет времени объяснять — это БАЗА: чек-лист защиты корпоративной инфраструктуры +15

    • 60   9900

    Self-hosted связь со своей семьей +94

    • 58   20000

    LED лампы и теория заговора +2

    • 43   9200

    Увольте своих программистов. Или спросите их… -52

    • 43   21000

    Сколько нам всем осталось? +9

    • 41   18000

    Про душные истории о «Зумерах» и необоснованных претензиях +39

    • 41   12000

    10 хороших роутеров до 5000 рублей, которые не просто раздают Wi-Fi +8

    • 40   13000

    Япония продаёт гигантского робота за 3 миллиона долларов и я разобрался, как он устроен +4

    • 38   17000

    Машина времени: Что предлагалось дарить детям на Рождество в США в 1980 году +19

    • 35   13000
  • Главная
  • Контакты
© 2025. Все публикации принадлежат авторам.