Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 03.10.2012, 19:09
Кандидат Javascript-наук
Отправить личное сообщение для Slavenin Посмотреть профиль Найти все сообщения от Slavenin
 
Регистрация: 20.11.2010
Сообщений: 143

Ajax & sockets
Всем доброго времени суток!
Написал на php сокет-сервер. Все здорово, все работает... При прямом обращении по нужным адресам.

Дальше начинается "уличная магия"... В том случае, если сервер уже запущен, когда я дергаю его ajax`ом все хорошо. Если же сервер не запущен, то я его запускаю и пробую снова чего-нибудь ему отправить. Он запускается(вижу в логах), но... и это самое странное, даже после принудительного завершения ajax-запроса(на запуск) второй(с сообщением до сервера не доходит)... тупо висит в сетевой активности

сломал голову, ничего не понимаю...
window.onload = function()
{
	$.post('/ru/socket/', {}, function(data){
		if(data !== '1\n')
		{
			jqxhr = $.ajax({
				type: "GET",
				url: "/ru/socket/index.php",
				data: "start=1",
				timeout: 1000
			});
			setTimeout(postAjax, 1500);

		}
	});
};

function postAjax()
{
	jqxhr.abort();
	$.get('/ru/socket/', {}, function(data){
				alert(data);
			});
}
__________________

Ответить с цитированием
  #2 (permalink)  
Старый 04.10.2012, 10:59
Аватар для keen
Профессор
Отправить личное сообщение для keen Посмотреть профиль Найти все сообщения от keen
 
Регистрация: 28.03.2012
Сообщений: 376

хм, ну можно попробовать использовать не $.post и $.get, а $.ajax, в котором указать обработчик на событие error - возможно он и будет срабатывать, завершая запрос.
Ответить с цитированием
  #3 (permalink)  
Старый 04.10.2012, 12:54
Кандидат Javascript-наук
Отправить личное сообщение для Slavenin Посмотреть профиль Найти все сообщения от Slavenin
 
Регистрация: 20.11.2010
Сообщений: 143

переписал, толку ноль

window.onload = function()
{
	$.ajax({
		type: "GET",
		url: "/ru/socet_client/index.php",
		data: {},
		timeout: 1000,
		success: function(data) {
			if(data !== '1\n')
			{
				jqxhr = $.ajax({
					type: "GET",
					url: "/ru/socket_server/index.php",
					data: {},
					timeout: 1000,
					success: function(data) {
						alert('Ready');
					},
					error: function(jqXHR, textStatus, errorThrown){
						alert('error_server ' + textStatus + ' ' + errorThrown);
					}
				});
				setTimeout(postAjax, 1500);
			}
		},
		error: function(jqXHR, textStatus, errorThrown){
			alert('error_client ' + textStatus + ' ' + errorThrown);
		}
	});
};

function postAjax()
{
	jqxhr.abort();
	$.ajax({
		type: "GET",
		url: "/ru/socet_client/index.php",
		data: {},
		//timeout: 1000,
		success: function(data) {
			alert(data);
		},
		error: function(jqXHR, textStatus, errorThrown){
			alert('error_server ' + textStatus + ' ' + errorThrown);
		}
	});
}


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

Ответить с цитированием
  #4 (permalink)  
Старый 04.10.2012, 15:45
Кандидат Javascript-наук
Отправить личное сообщение для Slavenin Посмотреть профиль Найти все сообщения от Slavenin
 
Регистрация: 20.11.2010
Сообщений: 143

победа но из разряда "где мой бубен"... Проблема решается путем запуска сервера в отдельном потоке через stream_socket_client с отключенной блокировкой stream_set_blocking( $s, 0 ); в результате сервер запускается в отдельном потоке, скрипт не ждет ответа и удачно завершается, можно слать запросы...
__________________

Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с AJAX Dim@ AJAX и COMET 4 16.09.2012 22:52
Вывод информации со страницы в ajax fAmOus Элементы интерфейса 4 17.07.2012 00:32
Ajax таблица gofkane Работа 1 26.09.2011 18:26
Ajax таблица gofkane Работа 0 25.09.2011 11:53
Ajax разбор метода mycoding jQuery 14 21.05.2010 10:57