Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 26.02.2013, 12:18
Аспирант
Отправить личное сообщение для Voronar Посмотреть профиль Найти все сообщения от Voronar
 
Регистрация: 15.02.2013
Сообщений: 55

WebSocket (стандарт RFC 6455)
Приветствую. В node'вских веб-сокетах я пока не стал разбираться, так как в в самом ноде ещё не разобрался.
Обратил внимание вот на это.
Решил разобраться и сделать простой пример.
В качестве сервера я использую apache+php.
Вот в этом коде хотел написать простую программу для тестировании WebSocket.
<!DOCTYPE html>
<html>
  <head>
  </head>
  
  <body>
    <script type="text/javascript">
	
		function greeting()
		{
			alert("Welcome " + document.forms["frm1"]["fname"].value + "!");
			
			var socket = new WebSocket("ws://test1.ru/");
		
			socket.onopen = function()
			{ 
			alert("Соединение установлено."); 
			};

			socket.onclose = function(event)
			{ 
				if (event.wasClean)
				{
					alert('Соединение закрыто чисто');
				}
				else
				{
					alert('Обрыв соединения'); // например, "убит" процесс сервера
				}
				alert('Код: ' + event.code + ' причина: ' + event.reason);
			};
 
			socket.onmessage = function(event)
			{	 
				alert("Получены данные " + event.data);
			};

			socket.onerror = function(error)
			{ 
				alert("Ошибка " + error.message); 
			};
		}
    </script>
         
	What is your name?<br>
	<form name="frm1"  onsubmit="greeting()">
		<input type="text" name="fname">
		<input type="submit" value="Submit">
	</form>
    
  </body>
</html>


Ответ вот такой:
"Приветствие работает
Ошибка undefined
Событие socket.onclose срабатывает.
Обрыв соединения
код=1006 причина=' ' "

Помогите разобраться. Как правильно обработать мой запрос с помощью этой технологии?
Я не пойму, что мне нужно делать на стороне сервера(php+apache), чтобы происходило хоть какое-то взаимодействие.
Ответить с цитированием
  #2 (permalink)  
Старый 26.02.2013, 14:46
Аватар для simple
Профессор
Отправить личное сообщение для simple Посмотреть профиль Найти все сообщения от simple
 
Регистрация: 23.09.2010
Сообщений: 247

на php нужно написать рукопожатие с клиентом, гугли вобщем phpwebsocket
Ответить с цитированием
  #3 (permalink)  
Старый 26.02.2013, 14:56
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

для начала нужно убедится что PHP >= 5.3 с поддержкой pcntl, shmop и sockets. Хотя shmop не особо обязателен, но работая с отдельным процессом, все же желателен. Далее открываешь порт на прослушку через сокет. Ну а дальше общаемся с использованием протокола WebSocket (стандарт RFC 6455)
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #4 (permalink)  
Старый 26.02.2013, 17:00
Аспирант
Отправить личное сообщение для Voronar Посмотреть профиль Найти все сообщения от Voronar
 
Регистрация: 15.02.2013
Сообщений: 55

Спасибо. Я уже посмотрел phpwebsocket.) Тестовый пример немного напугал количеством строк кода и ещё не освоенным PHP ООП.
Буду пробовать.
Ответить с цитированием
Ответ



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

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