Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: кешировать fsockopen

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: можно ли кешировать результат fsockopen?
KingStar
Отправлено: 11 Июля, 2012 - 18:32:26
Post Id



Участник


Покинул форум
Сообщений всего: 1889
Дата рег-ции: Авг. 2011  
Откуда: Беларусь


Помог: 69 раз(а)




Добрый день.

Проблема моя вот в чем... подключаясь в одном к серверу через сокет fsockopen, при подключении в другом, результат - ЗАНЯТО!!! (короче ограничение на число подключений)

Можно ли как-то кешировать само подключение и использовать его в других запросах??? пробовал в memcahed - не кеширует, pfsockopen, сессию пробовал - тоже все ..... (((

может что-то делаю не так, может кто подскажет или даст направление, как подключится к уже открытому сокету??

(Отредактировано автором: 12 Июля, 2012 - 17:21:59)



-----
То что программа работает, не означает что она написана правильно!
 
 Top
Stierus Супермодератор
Отправлено: 13 Июля, 2012 - 18:08:50
Post Id



Рекордсмен по количеству сообщений за 7 дней


Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008  
Откуда: Москваль


Помог: 52 раз(а)




кешировать никуда нельзя.

Не очень понял, что занято, какие сокеты открываешь и где у клиента ограничение на число подключений о_О Опиши поподробнее, может чего придумаем
 
My status
 Top
KingStar
Отправлено: 13 Июля, 2012 - 19:20:17
Post Id



Участник


Покинул форум
Сообщений всего: 1889
Дата рег-ции: Авг. 2011  
Откуда: Беларусь


Помог: 69 раз(а)




Использую класс для отправки сообщений по протоколу SMPP на сервер отправки сообщений клиенту. Для отправки, класс подключается на удаленный сервер открывая сокет, посылает команду (сообщение), и затем закрывает соединение. Если сообщений много, отправка затрачивает больше времени (в зависимости от кол-ва вплоть до минуты), и в это время нельзя еще в один поток отправит сообщение, сервер отвечает ошибкой (по русски - ЗАНЯТО!!! Улыбка)

Вот и стоит задача, вклинится в это открытое соединение, и отправлять параллельно сообщения. Вот сам класс - http://www.phpclasses[dot]org/packag[dot][dot][dot]er[dot]html#download

(Отредактировано автором: 13 Июля, 2012 - 19:21:42)



-----
То что программа работает, не означает что она написана правильно!
 
 Top
caballero
Отправлено: 13 Июля, 2012 - 20:12:38
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




кешировать сокет разумеется нельзя
а сервер запросто может не давать открывать параллельные соединения с одного и того же IP чтобы спам не рассылали и тут никакой класс не поможет


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
KingStar
Отправлено: 13 Июля, 2012 - 21:12:04
Post Id



Участник


Покинул форум
Сообщений всего: 1889
Дата рег-ции: Авг. 2011  
Откуда: Беларусь


Помог: 69 раз(а)




caballero пишет:
кешировать сокет разумеется нельзя
а сервер запросто может не давать открывать параллельные соединения с одного и того же IP чтобы спам не рассылали и тут никакой класс не поможет


Вот и стоит задача, вклинится в это открытое соединение, и отправлять параллельно сообщения. То что не кешируется и т.п. я уже понял.

Возникает вопрос, для чего функция pfsockopen, если к ней нельзя повторно подключится???

(Отредактировано автором: 13 Июля, 2012 - 21:12:46)



-----
То что программа работает, не означает что она написана правильно!
 
 Top
caballero
Отправлено: 13 Июля, 2012 - 21:20:15
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




Цитата:
Возникает вопрос, для чего функция pfsockopen, если к ней нельзя повторно подключится???

повторно может и можно но никак не впараллель - это уже будет другой сокет.

Цитата:
вклинится в это открытое соединение, и отправлять параллельно сообщения

зачем в него вклиниватся если оно под руками и открыто. И что значит параллельно ? У сокета есть определенная скорость передачи зависящая как от скорости канала связи так и от ограничений по скорости накдадваемым сервером. Никакое ни "параллельно " ни "попендикулярно" тут не поможет.


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
KingStar
Отправлено: 13 Июля, 2012 - 21:53:51
Post Id



Участник


Покинул форум
Сообщений всего: 1889
Дата рег-ции: Авг. 2011  
Откуда: Беларусь


Помог: 69 раз(а)




Если бы меня интересовал вопрос с ресурсами сервера - я бы постил не здесь. Вроде все понятно описал, зачем воду в ступе толочь??? Не в обиду конечно, но не это меня интерисует.

Цитата:
зачем в него вклиниватся если оно под руками и открыто


дык вот как к нему подключится, к нему, под руками, подключению???

например, index1.php - открывает, index2.php - подключается к открытому уже в index1.php

Возникает вопрос, для чего функция pfsockopen, если к ней нельзя повторно подключится???

(Отредактировано автором: 13 Июля, 2012 - 21:55:05)



-----
То что программа работает, не означает что она написана правильно!
 
 Top
Stierus Супермодератор
Отправлено: 16 Июля, 2012 - 13:39:55
Post Id



Рекордсмен по количеству сообщений за 7 дней


Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008  
Откуда: Москваль


Помог: 52 раз(а)




index1.php и index2.php ничего не знают друг о друге и не имеют общих открытых ресурсов, никак кэшировать ресурсы нельзя. Единственный вариант - переделать все на очередь отправки сообщений. Где будет 1 клиент с открытым сокетом смотреть в очередь и отправлять сообщения из нее. Куча других скриптов будут пушить в эту очередь сообщения
 
My status
 Top
caballero
Отправлено: 16 Июля, 2012 - 13:48:13
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




Цитата:
Возникает вопрос, для чего функция pfsockopen, если к ней нельзя повторно подключится???

можно но это будет тот же самый сокет. В этом и смысл функции


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
Stierus Супермодератор
Отправлено: 16 Июля, 2012 - 13:56:14
Post Id



Рекордсмен по количеству сообщений за 7 дней


Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008  
Откуда: Москваль


Помог: 52 раз(а)




KingStar пишет:
Возникает вопрос, для чего функция pfsockopen, если к ней нельзя повторно подключится???
задумка выиграть милисекунды, храня пул открытых сокетов и при запросе открытия сокета, не открывать его, а отдавать СВОБОДНЫЕ из этого пула. Если у вас открыт сокет, и в него идет запись из скрипта, то в этом пуле нет свободных и в другом скрипте (инстансе скрипта) приходится открывать новый сокет.
 
My status
 Top
KingStar
Отправлено: 16 Июля, 2012 - 23:53:23
Post Id



Участник


Покинул форум
Сообщений всего: 1889
Дата рег-ции: Авг. 2011  
Откуда: Беларусь


Помог: 69 раз(а)




caballero пишет:
Цитата:
Возникает вопрос, для чего функция pfsockopen, если к ней нельзя повторно подключится???

можно но это будет тот же самый сокет. В этом и смысл функции


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

Stierus пишет:
index1.php и index2.php ничего не знают друг о друге и не имеют общих открытых ресурсов, никак кэшировать ресурсы нельзя. Единственный вариант - переделать все на очередь отправки сообщений. Где будет 1 клиент с открытым сокетом смотреть в очередь и отправлять сообщения из нее. Куча других скриптов будут пушить в эту очередь сообщения


я так и поступил, написал типа сервера, в котором постоянно открыт сокет, и в бесконечном цикле в мускул запос на новые добавленные сообщения, и с отметкой их об отправке

минус в том, что работает только один сервер отправки, второго такого не запустишь, т.к. их сервер не подключит его, и не даст слать в 2 потока. Пичалька (((

(Отредактировано автором: 16 Июля, 2012 - 23:54:42)



-----
То что программа работает, не означает что она написана правильно!
 
 Top
Stierus Супермодератор
Отправлено: 17 Июля, 2012 - 09:50:16
Post Id



Рекордсмен по количеству сообщений за 7 дней


Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008  
Откуда: Москваль


Помог: 52 раз(а)




Это ограничение не с вашей стороны, принимайте это как данность, если нет возможности повлиять Улыбка
 
My status
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с сетью »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB