Покинул форум
Сообщений всего: 1889
Дата рег-ции: Авг. 2011 Откуда: Беларусь
Помог: 69 раз(а)
Добрый день.
Проблема моя вот в чем... подключаясь в одном к серверу через сокет fsockopen, при подключении в другом, результат - ЗАНЯТО!!! (короче ограничение на число подключений)
Можно ли как-то кешировать само подключение и использовать его в других запросах??? пробовал в memcahed - не кеширует, pfsockopen, сессию пробовал - тоже все ..... (((
может что-то делаю не так, может кто подскажет или даст направление, как подключится к уже открытому сокету??
----- То что программа работает, не означает что она написана правильно!
Stierus
Отправлено: 13 Июля, 2012 - 18:08:50
Рекордсмен по количеству сообщений за 7 дней
Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008 Откуда: Москваль
Помог: 52 раз(а)
кешировать никуда нельзя.
Не очень понял, что занято, какие сокеты открываешь и где у клиента ограничение на число подключений о_О Опиши поподробнее, может чего придумаем
KingStar
Отправлено: 13 Июля, 2012 - 19:20:17
Участник
Покинул форум
Сообщений всего: 1889
Дата рег-ции: Авг. 2011 Откуда: Беларусь
Помог: 69 раз(а)
Использую класс для отправки сообщений по протоколу SMPP на сервер отправки сообщений клиенту. Для отправки, класс подключается на удаленный сервер открывая сокет, посылает команду (сообщение), и затем закрывает соединение. Если сообщений много, отправка затрачивает больше времени (в зависимости от кол-ва вплоть до минуты), и в это время нельзя еще в один поток отправит сообщение, сервер отвечает ошибкой (по русски - ЗАНЯТО!!! )
----- То что программа работает, не означает что она написана правильно!
caballero
Отправлено: 13 Июля, 2012 - 20:12:38
Активный участник
Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011 Откуда: Харьков
Помог: 126 раз(а)
кешировать сокет разумеется нельзя
а сервер запросто может не давать открывать параллельные соединения с одного и того же IP чтобы спам не рассылали и тут никакой класс не поможет
Покинул форум
Сообщений всего: 1889
Дата рег-ции: Авг. 2011 Откуда: Беларусь
Помог: 69 раз(а)
caballero пишет:
кешировать сокет разумеется нельзя
а сервер запросто может не давать открывать параллельные соединения с одного и того же IP чтобы спам не рассылали и тут никакой класс не поможет
Вот и стоит задача, вклинится в это открытое соединение, и отправлять параллельно сообщения. То что не кешируется и т.п. я уже понял.
Возникает вопрос, для чего функция pfsockopen, если к ней нельзя повторно подключится???
----- То что программа работает, не означает что она написана правильно!
caballero
Отправлено: 13 Июля, 2012 - 21:20:15
Активный участник
Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011 Откуда: Харьков
Помог: 126 раз(а)
Цитата:
Возникает вопрос, для чего функция pfsockopen, если к ней нельзя повторно подключится???
повторно может и можно но никак не впараллель - это уже будет другой сокет.
Цитата:
вклинится в это открытое соединение, и отправлять параллельно сообщения
зачем в него вклиниватся если оно под руками и открыто. И что значит параллельно ? У сокета есть определенная скорость передачи зависящая как от скорости канала связи так и от ограничений по скорости накдадваемым сервером. Никакое ни "параллельно " ни "попендикулярно" тут не поможет.
Покинул форум
Сообщений всего: 1889
Дата рег-ции: Авг. 2011 Откуда: Беларусь
Помог: 69 раз(а)
Если бы меня интересовал вопрос с ресурсами сервера - я бы постил не здесь. Вроде все понятно описал, зачем воду в ступе толочь??? Не в обиду конечно, но не это меня интерисует.
Цитата:
зачем в него вклиниватся если оно под руками и открыто
дык вот как к нему подключится, к нему, под руками, подключению???
например, index1.php - открывает, index2.php - подключается к открытому уже в index1.php
Возникает вопрос, для чего функция pfsockopen, если к ней нельзя повторно подключится???
----- То что программа работает, не означает что она написана правильно!
Stierus
Отправлено: 16 Июля, 2012 - 13:39:55
Рекордсмен по количеству сообщений за 7 дней
Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008 Откуда: Москваль
Помог: 52 раз(а)
index1.php и index2.php ничего не знают друг о друге и не имеют общих открытых ресурсов, никак кэшировать ресурсы нельзя. Единственный вариант - переделать все на очередь отправки сообщений. Где будет 1 клиент с открытым сокетом смотреть в очередь и отправлять сообщения из нее. Куча других скриптов будут пушить в эту очередь сообщения
caballero
Отправлено: 16 Июля, 2012 - 13:48:13
Активный участник
Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011 Откуда: Харьков
Помог: 126 раз(а)
Цитата:
Возникает вопрос, для чего функция pfsockopen, если к ней нельзя повторно подключится???
можно но это будет тот же самый сокет. В этом и смысл функции
Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008 Откуда: Москваль
Помог: 52 раз(а)
KingStar пишет:
Возникает вопрос, для чего функция pfsockopen, если к ней нельзя повторно подключится???
задумка выиграть милисекунды, храня пул открытых сокетов и при запросе открытия сокета, не открывать его, а отдавать СВОБОДНЫЕ из этого пула. Если у вас открыт сокет, и в него идет запись из скрипта, то в этом пуле нет свободных и в другом скрипте (инстансе скрипта) приходится открывать новый сокет.
KingStar
Отправлено: 16 Июля, 2012 - 23:53:23
Участник
Покинул форум
Сообщений всего: 1889
Дата рег-ции: Авг. 2011 Откуда: Беларусь
Помог: 69 раз(а)
caballero пишет:
Цитата:
Возникает вопрос, для чего функция pfsockopen, если к ней нельзя повторно подключится???
можно но это будет тот же самый сокет. В этом и смысл функции
я уже голову сломал, как к нему переподключится, весь гугл перерыл, подобные вопросы задавались, но конкретного решения никто так и не дал.
Stierus пишет:
index1.php и index2.php ничего не знают друг о друге и не имеют общих открытых ресурсов, никак кэшировать ресурсы нельзя. Единственный вариант - переделать все на очередь отправки сообщений. Где будет 1 клиент с открытым сокетом смотреть в очередь и отправлять сообщения из нее. Куча других скриптов будут пушить в эту очередь сообщения
я так и поступил, написал типа сервера, в котором постоянно открыт сокет, и в бесконечном цикле в мускул запос на новые добавленные сообщения, и с отметкой их об отправке
минус в том, что работает только один сервер отправки, второго такого не запустишь, т.к. их сервер не подключит его, и не даст слать в 2 потока. Пичалька (((
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.