• Главная
  • Контакты
Подписаться:
  • 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

Подписка


ЛУЧШЕЕ

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

Паранойя безопасности против здравого смысла: чиним Home Assistant, который окирпичился без интернета +24

07:05

О таких подарках вы даже не мечтали: крутейшие игрушки стран Соцблока +10

08:00

Пет-проекты для новогодних праздников: от роботов до крестиков-ноликов +5

07:11

Грязный секрет ИИ: быть лучшим больше не имеет значения +5

08:46

Как должно выглядеть ревью кода в эпоху LLM +4

08:05

Chrome DevTools: подробный гайд +4

06:03

Список дел с элементами RPG-игры, экспресс-чтение книг по 5 минут в день — и ещё 8 российских стартапов +3

09:31

Эксперты предсказывали… Каким видели 2026-й несколько лет назад +2

09:21

Куда делись звуковые карты и кому они по-прежнему нужны в 2026 году +2

09:01

Ламповый гитарный комбоусилитель из советских деталей +2

07:18

Сказ о том как я пилил велосипед для домашнего видеонаблюдения. Часть третья, прикладная +2

09:03

Что такое фандинг арбитраж и как сделать автоматический поиск спредов +1

08:20

Почему мы все хорошо живём и обязаны этим капитализму? +1

08:09

Карго-культ в Jira: Почему метрики растут, а продукт гниет (Эффект Хоторна) +1

08:05

EMG TR4401: Оживляем Венгерский Осциллограф +64

13:28

Радары и то как от них прячутся. Часть 1 +51

12:02

Как заставить китайскую механическую клавиатуру работать в Linux +41

15:33

Как узнать айпи собеседника в телеграм в 1 клик? Дуров не фиксит это третий год… +30

06:15

Двухканальная паяльная станция на базе STM32 +29

13:01

Большим GPU не нужны большие PC +28

09:01

Что будет, когда ИИ-пузырь лопнет +28

12:00

Обработчики событий в JavaScript +24

13:06

CRTP должен умереть? АйТир Лист идиом и фичей C++: от худших к лучшим +21

10:31

Алан Кей об отправке сообщений +20

08:00

Какие навыки прокачать IT-специалисту на новогодних каникулах: подборка курсов от Selectel +19

05:55

Если в LinkedIn у CEO открыт номер телефона — считайте, компания уже взломана +18

14:14

Мы построили 80 домов, зарабатываем 13 млн в год, но вам не советую +16

06:04

Можно ли собрать кубик Рубика случайно? 10 фактов о вероятности, стремящейся к нулю +16

21:02

Сколько фирме стоит увольнение сотрудника? +13

18:11

pg-status — легковесный микросервис для определения статуса PostgreSQL хостов +13

16:20

Ну всё, пора закапывать UTF-8 +13

15:52

Пошаговая GDB отладка прошивки STM32 из консоли cmd +12

07:48

Взгляд на виртуального больного активирует иммунитет, подобно вакцине +11

17:22

Не болтайте ерундой +10

13:01

Проблема иерархии: почему гравитация (относительно) слабая, и почему это волнует физиков +59

14:42

Нейро сети для самых маленьких. Часть нулевая. Обзорная +56

08:00

Праздничный обвал: подборка новогодних инфраструктурных фейлов мирового масштаба +39

09:45

Ксеноморф в аббатстве Пэйсли: самый странный «артефакт» Шотландии +38

09:05

Сложно о простом. Все, что бы вы хотели знать о SFP модулях. Часть 3. Принцип работы, скорости и методы передачи +38

09:01

Ваш ноутбук пока не готов к LLM, но скоро это изменится +31

12:27

Почему «вайб-физика» — это пример чистейшего ИИ-шлака +27

10:13

Израиль первыми в мире развернул боевые лазеры: Гонка вооружений снова началась +27

18:45

Новый вид мошенничества +24

13:10

Загрузка в UEFI/BIOS без горячих клавиш: консольные методы для Windows и Linux +23

15:05

Топ-5 зимних игр +21

14:46

Канада. IT. 2500 безответных откликов за 3 года. Один проект +21

12:45

Почему большинство ритейл-алготрейдеров теряет деньги. Я полез разбираться +17

18:47

«(Не)послушные рынки. Фрактальная революция в финансах» (ч.1) +16

11:30

Одиночное и групповое движение NPC по произвольной кривой +16

10:22

Как собрать простую двустороннюю мозаику из кубиков Рубика +16

13:57

Макропад своими руками: первый прототип +15

17:15

Есть ли толк от E-ядер в OpenMP приложениях? +14

13:15

Световой будильник +11

12:01

Python collections: когда обычных списков и словарей мало +10

ОБСУЖДАЕМОЕ

  • Что будет, когда ИИ-пузырь лопнет +28

    • 202   22000

    Канада. IT. 2500 безответных откликов за 3 года. Один проект +21

    • 148   20000

    Израиль первыми в мире развернул боевые лазеры: Гонка вооружений снова началась +27

    • 72   9000

    Ну всё, пора закапывать UTF-8 +13

    • 55   10000

    Мы построили 80 домов, зарабатываем 13 млн в год, но вам не советую +16

    • 55   94000

    Эволюция методологий версионирования +4

    • 42   7800

    Как изучить программирование за 7 дней (до конца новогодних праздников)? +1

    • 40   14000

    Проблема иерархии: почему гравитация (относительно) слабая, и почему это волнует физиков +59

    • 39   20000

    Почему внедрение LLM в АИС «Налог-3» неизбежно — и что это изменит в налоговом контроле +4

    • 39   6300

    Как узнать айпи собеседника в телеграм в 1 клик? Дуров не фиксит это третий год… +30

    • 38   27000

    IBM 5150 и разработка под самый первый PC +8

    • 38   6800

    Новый вид мошенничества +24

    • 35   9800

    Почему большинство ритейл-алготрейдеров теряет деньги. Я полез разбираться +17

    • 35   9500

    Математика парадоксов +4

    • 31   8600

    Ваш ноутбук пока не готов к LLM, но скоро это изменится +31

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