Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.07.2019, 09:21   #21
Janek Parviste
Пользователь
 
Регистрация: 10.07.2019
Сообщений: 18
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Она и не должна этого делать! Сервер принимает сообщения, рассылает клиентам и, если хочется, пишет в БД.
Хорошо, насчет записи сообщений в БД понял, спасибо.
Как быть с теми браузерами, которые не поддерживают технологию websocket?
Janek Parviste вне форума Ответить с цитированием
Старый 11.07.2019, 09:25   #22
Janek Parviste
Пользователь
 
Регистрация: 10.07.2019
Сообщений: 18
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Долбить СУБД запросами были ли изменения.


И это провал архитектуры, если для чата вы так собираетесь напрячь БД. Пишите обычного демона для чата: новые сообщения - пишет в бд и рассылает клиентам, новым клиентам - выгружает часть истории, если надо... Можете даже его на веб-сокеты повесить.

https://phppot.com/php/simple-php-chat-using-websocket/
Скажите, это самая лучшая реализация websocket сервера на PHP? https://phppot.com/php/simple-php-chat-using-websocket/
Janek Parviste вне форума Ответить с цитированием
Старый 11.07.2019, 10:27   #23
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Janek Parviste Посмотреть сообщение
Как быть с теми браузерами, которые не поддерживают технологию websocket?
ну, во-первых, таких динозавров уже бесконечно мало.
Цитата:
В настоящее время WebSocket поддерживается в следующих браузерах:

Google Chrome (начиная с версии 4.0.249.0);
Apple Safari (начиная с версии 5.0.7533.16);
Mozilla Firefox (начиная с версии 4);
Opera (начиная с версии 10.70 9067);
Internet Explorer (начиная с версии 10);
Проверить поддержку браузером WebSocket можно, пройдя по ссылке: http://caniuse.com/#feat=websockets.
во-вторых, что с ними делать - решать Вам. можно эмулировать двухстороннюю связь через POLLING /LONG POLLING на JS, можно вообще сообщать, что Ваш браузер устарел (давай, до свидания!)


Цитата:
Сообщение от Janek Parviste Посмотреть сообщение
Скажите, это самая лучшая реализация websocket сервера на PHP? https://phppot.com/php/simple-php-chat-using-websocket/
я с этой реализацией не сталкивался, но могу сказать, что это однозначно НЕ ЛУЧШАЯ реализация.
да и вообще, спорно, что можно вообще говорить про лучшую реализацию, потому что идеология PHP не расчитана на непрерывное выполнение на стороне сервера.
я использовал PHPDaemon, когда мне потребовалась реализация сервера на PHP, но не уверен, что это решение можно назвать самым лучшим. Но оно успешно работает!
Попробуйте, возможно и ваше решение тоже будет работать.

Просто, если есть возможность, то лучше использовать серверное решение, в котором уже заложена поддержка WebSocket сервера. Например, NODE.JS
Serge_Bliznykov вне форума Ответить с цитированием
Старый 11.07.2019, 10:40   #24
Janek Parviste
Пользователь
 
Регистрация: 10.07.2019
Сообщений: 18
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
ну, во-первых, таких динозавров уже бесконечно мало.


во-вторых, что с ними делать - решать Вам. можно эмулировать двухстороннюю связь через POLLING /LONG POLLING на JS, можно вообще сообщать, что Ваш браузер устарел (давай, до свидания!)



я с этой реализацией не сталкивался, но могу сказать, что это однозначно НЕ ЛУЧШАЯ реализация.
да и вообще, спорно, что можно вообще говорить про лучшую реализацию, потому что идеология PHP не расчитана на непрерывное выполнение на стороне сервера.
я использовал PHPDaemon, когда мне потребовалась реализация сервера на PHP, но не уверен, что это решение можно назвать самым лучшим. Но оно успешно работает!
Попробуйте, возможно и ваше решение тоже будет работать.

Просто, если есть возможность, то лучше использовать серверное решение, в котором уже заложена поддержка WebSocket сервера. Например, NODE.JS
Слышал, что Node.js не поддерживает асинхронность. То есть имею в виду что из-за того что Javascript выполняет все в одном потоке, сервер будет перезагружен.
В позапрошлом году пробовал установить phpDaemon, но не получилось, потому что вылетали ошибки.

Последний раз редактировалось Janek Parviste; 11.07.2019 в 10:43.
Janek Parviste вне форума Ответить с цитированием
Старый 11.07.2019, 11:00   #25
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

https://toster.ru/q/246342


Цитата:
Сообщение от Janek Parviste Посмотреть сообщение
Слышал, что Node.js не поддерживает асинхронность.
я не специалист, но да, вроде бы там один поток и событийно управляемая модель. Скорее всего, для большой нагрузки не потянет.

https://habr.com/ru/post/351012/
Цитата:
Далее я рассмотрел Node.JS WS. Этот фреймворк показал неплохие результаты – около 5 тысяч коннектов на тестовом стенде без дополнительных настроек.

Цитата:
Сообщение от Janek Parviste Посмотреть сообщение
В позапрошлом году пробовал установить phpDaemon, но не получилось, потому что вылетали ошибки.
у нас админ ставил на Ubuntu. Там он работает.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 11.07.2019, 11:40   #26
Janek Parviste
Пользователь
 
Регистрация: 10.07.2019
Сообщений: 18
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
https://toster.ru/q/246342


я не специалист, но да, вроде бы там один поток и событийно управляемая модель. Скорее всего, для большой нагрузки не потянет.

https://habr.com/ru/post/351012/




у нас админ ставил на Ubuntu. Там он работает.
Есть ли какой-нибудь PHP фреймворк со встроенной возможностью использования вебсокетов?
Janek Parviste вне форума Ответить с цитированием
Старый 11.07.2019, 11:43   #27
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,706
По умолчанию

https://habr.com/en/post/331462/
p51x вне форума Ответить с цитированием
Старый 11.07.2019, 12:36   #28
Janek Parviste
Пользователь
 
Регистрация: 10.07.2019
Сообщений: 18
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
https://toster.ru/q/246342


я не специалист, но да, вроде бы там один поток и событийно управляемая модель. Скорее всего, для большой нагрузки не потянет.

https://habr.com/ru/post/351012/




у нас админ ставил на Ubuntu. Там он работает.
Если сделать не сервер, а запустить на сервере php файл с бесконечным циклом вебсокета, то сколько подсоединенных клиентов выдержит такой php файл?
Janek Parviste вне форума Ответить с цитированием
Старый 11.07.2019, 13:40   #29
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Janek Parviste Посмотреть сообщение
то сколько подсоединенных клиентов выдержит такой php файл?
я не знаю, у меня нет ответа на этот вопрос.

p.s. смотрите, у Вас явная логическая нестыковка идёт.
если Вы хотите сделать какой-то самопальный велосипед, то все исследования по его работе, утечками памяти, подвисаниям и замеров нагрузки - ложатся на ваши плечи.
это решение вполне допустимо. и, если у Вас планируется несколько тысяч одновременных коннектов, то это, скорее всего, будет вполне достойно работать (ну, смотря как реализуете, какое железо на сервере и какие ограничения на сервер, если он на хостинге).
если Вы планируете, что у Вас будет миллион пользователь одновременно, то это совсем другие архитектурные решения - и другое железо, и лучше взять готовое серверное ПО, которое такую нагрузку выдержит.

а Вы хотите сделать велосипед, но так, чтобы на нём можно было ехать толпой, да ещё и груз перевозить

Последний раз редактировалось Serge_Bliznykov; 11.07.2019 в 13:51.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 11.07.2019, 15:08   #30
Janek Parviste
Пользователь
 
Регистрация: 10.07.2019
Сообщений: 18
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
я не знаю, у меня нет ответа на этот вопрос.

p.s. смотрите, у Вас явная логическая нестыковка идёт.
если Вы хотите сделать какой-то самопальный велосипед, то все исследования по его работе, утечками памяти, подвисаниям и замеров нагрузки - ложатся на ваши плечи.
это решение вполне допустимо. и, если у Вас планируется несколько тысяч одновременных коннектов, то это, скорее всего, будет вполне достойно работать (ну, смотря как реализуете, какое железо на сервере и какие ограничения на сервер, если он на хостинге).
если Вы планируете, что у Вас будет миллион пользователь одновременно, то это совсем другие архитектурные решения - и другое железо, и лучше взять готовое серверное ПО, которое такую нагрузку выдержит.

а Вы хотите сделать велосипед, но так, чтобы на нём можно было ехать толпой, да ещё и груз перевозить
Вы все верно сказали о том что нет смысла изобретать велосипед.
Я бы с удовольствием использовал PHPDaemon, но у меня нет опыта использования Linux.
PHPDaemon должен быть на отдельном сервере с отдельным IP-адресом?

Последний раз редактировалось Janek Parviste; 11.07.2019 в 15:17.
Janek Parviste вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
cmd realtime и pipe firstoxe Общие вопросы Delphi 2 15.07.2015 14:49
MSSQL 2005 text data type BloodWizard SQL, базы данных 7 25.10.2010 17:30
IdPOP31.Retrieve(n,Msg);//Задумывается навсегда( Biohazard Работа с сетью в Delphi 0 09.10.2010 13:41
Видео в режиме realtime Holly1444 Помощь студентам 2 23.08.2009 17:07