sharp97
@sharp97
не фонтан но брызги есть

PHP websocket насколько сильно он уступает node.js по производительности?

Доброго времени суток. Решил для себя разобраться с отправкой данных в режиме реального времени - нагуглил такие штуки как вебсокет, SSE, WebRTC - сделал выводы по нагугленной информации - что для отправки данных типа уведомлений или просто какая-то новостная лента можно использовать SSE, а вот для какого-то чата надо вебсокет, т.к. я юзаю php - копнул в сторону ratchet , там документация и т д вся информация которую я находил за 2004 года чёт такое, все ошибки которые ловил и гуглил минимум 5 лет назад заданы вопросы по ним на которых 0 ответов, то есть комьюнити фул мёртвое. Ну и все знакомые/кенты - потные чуваки говорят мол просто юзай node js и не парься , так вот - а есть ли вообще сейчас какие-то проекты которые держаться на пхп вебсокете - если знаете скиньте посмотреть - интересно, и если есть у вас реальные примеры может из рабочего опыта где вы юзали допустим workerman/ratchet на определенное кол-во пользователей и на такое же кол-во юзеров node js - как ощущалась разница по нагрузке и т д?
  • Вопрос задан
  • 667 просмотров
Пригласить эксперта
Ответы на вопрос 2
sergiks
@sergiks Куратор тега PHP
♬♬
Open Swoole – мощный супер-быстрый асинхронный PHP.
WebSocket'ы, корутины, высокая нагрузка.

Пример WebSocket сервера:
<?php

use OpenSwoole\WebSocket\Server;
use OpenSwoole\Http\Request;
use OpenSwoole\WebSocket\Frame;

$server = new Server("0.0.0.0", 9502);

$server->on("Start", function(Server $server)
{
    echo "OpenSwoole WebSocket Server is started at http://127.0.0.1:9502\n";
});

$server->on('Open', function(Server $server, OpenSwoole\Http\Request $request)
{
    echo "connection open: {$request->fd}\n";

    $server->tick(1000, function() use ($server, $request)
    {
        $server->push($request->fd, json_encode(["hello", time()]));
    });
});

$server->on('Message', function(Server $server, Frame $frame)
{
    echo "received message: {$frame->data}\n";
    $server->push($frame->fd, json_encode(["hello", time()]));
});

$server->on('Close', function(Server $server, int $fd)
{
    echo "connection close: {$fd}\n";
});

$server->on('Disconnect', function(Server $server, int $fd)
{
    echo "connection disconnect: {$fd}\n";
});

$server->start();
Ответ написан
Комментировать
SilenceOfWinter
@SilenceOfWinter Куратор тега PHP
та еще зажигалка...
подобные проекты вымерли т.к. там не то чтобы много кода (соединиться и передать/получить данные) поэтому особой надобности в отдельных пакетах нет - достаточно функций php
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы