Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
Страницы: (2) 1 [2]  ( Перейти к первому непрочитанному сообщению )  
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> AJAX+socket для оптимизации.На сколько правильно
bestxp  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



орангутанг
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 2004
Пользователь №: 36605
На форуме: 3 года, 9 месяцев, 15 дней
Карма: 111




Цитата (Valick @ 26.11.2015 - 16:10)
Zzepish, давай ты всётаки не будешь загибать пальцы... речь о веб-сокетах
а так можно всё свести к 0 и 1

Тогда сходи прочитай еще раз


--------------------
PMПисьмо на e-mail пользователюСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Zzepish  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Аццкая хрень
******

Профиль
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 5475
Пользователь №: 32538
На форуме: 4 года, 6 месяцев, 7 дней
Карма: 49




Valick
Цитата
Аякс - это как если ты по каждому вопросу звонишь, после ответа отключаешь линию связи. Каждый раз ты должен набрать номер, подождать прохождение вызова, дождаться ответа. Принимающий вызов должен ответить.
Сокеты - это когда ты делаешь вызов один раз и не сбрасываешь соединение всё время, пока оно тебе нужно. И при этом никто не "заставляет" никого говорить или "принимать работу" smile.gif Вы точно также общаетесь, как. Разница в том, что если у другого человека к тебе есть вопрос или инфа, он не должен ждать, когда ты позвонишь, а может спросить сразу же. И ты задаешь свои вопросы и получаешь ответы точно также, как раньше. При этом тебе не нужно каждый раз тратить время на набор номера и ожидание ответа.


Sergeiss указал именно термин сокет, а не вебСокет


--------------------
Правда тоже ложь, но с иным углом.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Santehnick  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Абориген
*****

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 231
Пользователь №: 26735
На форуме: 5 лет, 8 месяцев, 26 дней
Карма: 15




Цитата (McLotos @ 26.11.2015 - 03:53)
Так получается что я могу полностью избавиться от AJAX.
Но тогда возникает несколько вопросов:
I. Как прикрутить сокеты к такой схеме:
   1. index.php решает что хочет построить страницу и через autoload получает нужные классы, создает объекты Config и Request и отдает их объекту FrontController.
   2. FrontController запрашивает у фабрики классов объекты Model, View, Controller для текущей страницы. Передает объекты Model и View объекту Controller. Спрашивает у Request, есть ли какие-то GET или POST данные, и отдает их в соответствующий метод объекта Controller.
   Как в эту схему вписать сокеты?
II. На сколько я знаю если открыть например несколько вкладок, то будут созданы отдельные сокеты для каждой вкладки, а при переходе на другой url сокет будет пересоздан. Как мне тогда решить основную проблему - клиент запросил отчет с сервера и ушел дальше работать. Как послать клиенту уведомление что отчет готов, если сокет был пересоздан?

Тебе нужно написать демон, который будет принимать вебсокет соединения. Прям с нуля не нужно. Можно взять socket.io, soket.io-redis и socket.io-php-emitter

Работает всё через redis pub/sub. socket.io подписывается на redis канал и слушает на каком-нибудь порту. nginx проксирует весь ws траффик на этот порт. php скрипт в процессе работы публикует что-нибудь в redis канал, socket.io это замечает и рассылает месседж всем своим клиентам.

Один из вариантов. Их тысячи.

А можешь, HTTP Streaming использовать. Так работает Вконтакте и Телеграм например. Суть такая. Кидается http-запрос и он висит, в это время сервер толкает свои события клиенту, потом запрос отваливается по таймауту, как только это произошло, кидается новый http-запрос. Это лучше чем обычный опрос (polling), но хуже чем вебсокеты. Зато работает везде, даже в допотопных браузерах.

На сервере (упрощенно) работает так. Бесконечный цикл на php, который проверяет есть ли какие-то данные для клиента и если есть, отправляет их в браузер через flush, соединение между браузером и сервером не закрывается. Его закрывает клиент, по таймауту. В вк это 20 секунд. События для клиента можешь хранить в очереди. RabbitMQ подойдет.
PM
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
McLotos  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



武士道
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1225
Пользователь №: 28342
На форуме: 5 лет, 5 месяцев, 20 дней
Карма: 28




Цитата (Santehnick @ 26.11.2015 - 19:20)
Тебе нужно написать демон, который будет принимать вебсокет соединения.

Сокет уже написал. С нуля.
Вопрос был больше по архитектуре самого кода, т.е. куда в паттерне MVC запихнуть сокет, до index или где-то потом. И как сделать так чтобы данные не терялись при смене url


--------------------
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
McLotos  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



武士道
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1225
Пользователь №: 28342
На форуме: 5 лет, 5 месяцев, 20 дней
Карма: 28




Zzepish
Я прекрасно знаю модель OSI, десяток лет админом проработал =)


--------------------
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
bestxp  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



орангутанг
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 2004
Пользователь №: 36605
На форуме: 3 года, 9 месяцев, 15 дней
Карма: 111




Цитата (McLotos @ 27.11.2015 - 10:54)
Цитата (Santehnick @ 26.11.2015 - 19:20)
Тебе нужно написать демон, который будет принимать вебсокет соединения.

Сокет уже написал. С нуля.
Вопрос был больше по архитектуре самого кода, т.е. куда в паттерне MVC запихнуть сокет, до index или где-то потом. И как сделать так чтобы данные не терялись при смене url

Hystory API тогда тебе в помощь))
по сути url меняеться, а страница нет) далее думаю мысль поймешь?)


--------------------
PMПисьмо на e-mail пользователюСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темыСтраницы: (2) 1 [2]  Ответ в темуСоздание новой темыСоздание опроса