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

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

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.10.2013, 10:08   #1
Vityalo
 
Регистрация: 13.09.2009
Сообщений: 9
Счастье Постоянное socket подключение

есть два скрипта:
index.php и action.php

из index.php отправляется ajax запрос в action.php

а оттуда отправляется данные на socket сервер написанный на C++ и возвращается ответ сервера.

при каждой отправке ajax запроса файл action.php запускается снова и создаётся новое socket подключение.

Появилась мысль создать подключение один раз при загрузке страницы index.php, как тогда получить ссылку на подключение (ресурс, переменная $socket) из файла action.php

index.php:
PHP код:
<?
$socket 
fsockopen("172.30.78.162"27015); 
?>
//отправка данных с помощью ajax
action.php:
PHP код:
<?php
fputs
($socket$_POST["data"]); //запрос 
echo $rez fgets($socket,256); //ответ сервера
?>
пробовал через сессии, но они предназначены только для данных,

есть какие-то супеглобальные переменные, которые можно использовать?
Vityalo вне форума Ответить с цитированием
Старый 31.10.2013, 10:39   #2
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,156
По умолчанию

а зачем постоянное подключение? это не совсем концепция веба
передали аякс - подключились, взяли данные - отключились. Все счастливы, все смеются
ADSoft вне форума Ответить с цитированием
Старый 31.10.2013, 10:45   #3
Vityalo
 
Регистрация: 13.09.2009
Сообщений: 9
По умолчанию

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

если потом ещё раз взять данные, то потребуется 1 мс,

поэтому хочется оптимизировать по максимуму
Vityalo вне форума Ответить с цитированием
Старый 31.10.2013, 10:49   #4
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,156
По умолчанию

просто сомневаюсь, что хост даст вам держать постоянное соединение
ADSoft вне форума Ответить с цитированием
Старый 31.10.2013, 11:25   #5
Vityalo
 
Регистрация: 13.09.2009
Сообщений: 9
По умолчанию

использовал pfsockopen() и ini_set("default_socket_timeout", 6000);
количество подключений уменьшилось, счётчик подключений на С++ показывает 19, а раньше постоянно увеличивался
Vityalo вне форума Ответить с цитированием
Старый 31.10.2013, 11:28   #6
Vityalo
 
Регистрация: 13.09.2009
Сообщений: 9
По умолчанию

может всё-таки как то можно хранить ссылку на ресурс подключения глобально,
чтобы во всех скриптах было видно?
Vityalo вне форума Ответить с цитированием
Старый 31.10.2013, 11:31   #7
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,156
По умолчанию

Если только GLOBAL_REGISTER = ON врубить
и в основном скрипте объявить global $socket;
ADSoft вне форума Ответить с цитированием
Старый 31.10.2013, 12:50   #8
Vityalo
 
Регистрация: 13.09.2009
Сообщений: 9
По умолчанию

наверное я что-то не так делаю:

прописал в .htaccess
PHP код:
php_flag register_globals on 
в index.php:
PHP код:
global $socket pfsockopen("192.168.1.12"12512); 
в action.php:
PHP код:
echo $socket//ошибка, переменная не определена 
action.php вызывается посредством ajax запроса
Vityalo вне форума Ответить с цитированием
Старый 31.10.2013, 12:51   #9
Johnatan
Antimoderаtoris
Участник клуба
 
Регистрация: 08.02.2008
Сообщений: 1,251
По умолчанию

Цитата:
Сообщение от ADSoft Посмотреть сообщение
Если только GLOBAL_REGISTER = ON врубить
и в основном скрипте объявить global $socket;
Ээээээээ нет, не нужно нам таких глупостей на этом форуме, пожалуйста. Всё равно не поможет.

Vityalo Используй pfsockopen но внимательно прочитай комментарии на странице мануала!

P.S. Пока я писал, ты и сам догадался.
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?
Johnatan вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Восстановить подключение после socket error 10054 connection reset by peer ZBEP Работа с сетью в Delphi 3 11.06.2013 18:24
Постоянное программирование Rost93 Компьютерное железо 7 24.07.2012 22:00
формула на постоянное уменьшение terminda12 Microsoft Office Excel 4 29.07.2011 23:52
Постоянное выдергивание из базы CodeNOT JavaScript, Ajax 0 01.07.2011 14:20
Socket: Подключение клиента из глобальной сети к серверу, расположенному в локальной сети Дамир Общие вопросы .NET 4 01.12.2010 12:12