За последние 24 часа нас посетили 59116 программистов и 1808 роботов. Сейчас ищут 834 программиста ...

Постоянная связь нескольких клиентов с php скриптом. Сокеты?

Тема в разделе "Прочие вопросы по PHP", создана пользователем webgelo, 20 янв 2015.

  1. webgelo

    webgelo Новичок

    С нами с:
    20 янв 2015
    Сообщения:
    3
    Симпатии:
    0
    Доброго времени!
    Нужно реализовать такую задачу:

    1. есть php скрипт, который должен быть постоянно запущен (бесконечный цикл как я понимаю) и периодически (по мере поступления) посылать информацию всем подключенным к нему клиентам (браузерам).
    2. соответственно в браузере, через JS, нужно иметь возможность подключиться к серверу и получать сообщения от него.

    Сложность еще в том, что таких процессов должно быть несколько. Если сравнивать с чатом - несколько "комнат".
    Подскажите, как проще это сделать? Без излишеств и особых заморочек.
    (comet, с длительными соединениями по таймеру не подходит)
    Заранее спасибо!
     
  2. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Re: Постоянная связь нескольких клиентов с php скриптом. Сок

    nodeJS тебе нужен или что-то еще нативное, а не сессионный пых.
     
  3. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Re: Постоянная связь нескольких клиентов с php скриптом. Сок

    java?
     
  4. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Re: Постоянная связь нескольких клиентов с php скриптом. Сок

    http://socketo.me/
     
  5. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Re: Постоянная связь нескольких клиентов с php скриптом. Сок

    Да хоть C++ через CGI. Но не пых :)
     
  6. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    Re: Постоянная связь нескольких клиентов с php скриптом. Сок

    почему не пых-то?))) открыли сокет, слушаем, подключился клиент - форкнулись. по событию делаем бродкаст всем форкам через обычный fifo. на операции прими-отдай оперативы меньше мега будет уходить.

    не слушайте дядю, он плохому научит.
     
  7. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Re: Постоянная связь нескольких клиентов с php скриптом. Сок

    это было адресовано тс =)

    Добавлено спустя 22 секунды:
    Re: Постоянная связь нескольких клиентов с php скриптом. Сокеты?
    хехе =)
     
  8. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    Re: Постоянная связь нескольких клиентов с php скриптом. Сок

    ну да, мы же о пхп говорим))) там пару байт обработать - 768кБ памяти аллокейтится)))) хотя наверное если выкинуть неиспользуемые модули то и жрать будет меньше. уверен что чат-демону не пригодится ни XML ни GD ни тому подобное. только сокеты, процессы и строковые функции.
     
  9. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Re: Постоянная связь нескольких клиентов с php скриптом. Сок

    тут на форуме люди писали об успешном применении демонов, но они всё же иногда перезапускались.
     
  10. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    Re: Постоянная связь нескольких клиентов с php скриптом. Сок

    ну допустим у меня есть демон на пхп. если перезапуск физического сервера считается перезапуском демона то да иногда перезапускаю демон))))) а так я его еще в 2013 написал и уже забыл как он работает потому что он просто работает. чтоб рассказать что-то - лезу в исходники. но да, джава демон работает в разы быстрее и жрет меньше ресурсов.
     
  11. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Re: Постоянная связь нескольких клиентов с php скриптом. Сок

    Менеджмент памяти как у говна. И течет как сито. Дырявое.
    А вот тут поподробнее. Давно у пыха появились функции для работы с потоками/процессами напрямую?
     
  12. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Re: Постоянная связь нескольких клиентов с php скриптом. Сок

    Форкать давно может. А чо?
     
  13. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    Re: Постоянная связь нескольких клиентов с php скриптом. Сок

    в рамках жизни вселенной - миг
     
  14. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    Re: Постоянная связь нескольких клиентов с php скриптом. Сок

    если руки из ж. то и на c++ можно написать текущее сито.
    у пыха конечно это не самая сильная сторона, но когда нужно, можно и демона состряпать, работать будет это главное.
     
  15. Zuldek

    Zuldek Старожил

    С нами с:
    13 май 2014
    Сообщения:
    2.381
    Симпатии:
    344
    Адрес:
    Лондон, Тисовая улица, дом 4, чулан под лестницей
    Re: Постоянная связь нескольких клиентов с php скриптом. Сок

    php-fpm всё позволяет делать тут описанное. Нет смысла писать проект на 2-3 языках если решение удовлетворяет всем требованиям. Купите гиг памяти за 2 рубля и забудьте о том сколько мегабайт дополнительно ест пых.
    Как тут правильно заметили, если в воркере на пыхе течёт память и руки из жопы, то и в реализации на сях будет то же самое. Крутится с с десяток демонов на пыхе на крупном проекте и никаких проблем нет.

    Важны всё же требования к решению, которые тс не уточнил. Если нужно поддерживать тысячи одновременных открытых соединений через которые постоянно идёт обмен данными, то php не та технология на которой нужно решать задачу изначально.
     
  16. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    Re: Постоянная связь нескольких клиентов с php скриптом. Сок

    а еще есть phpDeamon, который вообще много чего умеет из коробки(держит тысячи соединений)
     
  17. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    Re: Постоянная связь нескольких клиентов с php скриптом. Сок

    единственная "проблема" пыха в данном случае это производительность. вынос части кода на джаву дал мне примерно 40-х прирост производительности. в данном случае не считаю бессмысленным писать проект на двух языках, а вот покупка ОЗУ в моем случае будет бессмысленной - там где пыху нужно было около 2Гб джава спокойно работает с 700Мб. наверное правильное решение задачи начинается с правильной оценки самой задачи.
     
  18. webgelo

    webgelo Новичок

    С нами с:
    20 янв 2015
    Сообщения:
    3
    Симпатии:
    0
    Re: Постоянная связь нескольких клиентов с php скриптом. Сок

    Благодарю за ответы.
    Активных подключений не более 30 планируется. Через websocket. Задача простая: принимать новые соединения, отслеживать кто отключился, рассылать всем сообщения. Всё.
    Нашел уже информацию, буду пробовать. Не вижу смысла для этого использовать что-то стороннее.
    (хотелось услышать нюансы реализации именно на php)
     
  19. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Re: Постоянная связь нескольких клиентов с php скриптом. Сок

    Просто клонировать себя? Или есть возможность межпотокового/межпроцессового взаимодействия? Моя любить многопоточные игрушки.
     
  20. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
  21. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Re: Постоянная связь нескольких клиентов с php скриптом. Сок

    [​IMG]