2011-02-09 1 views
1

У меня есть две отдельные страницы, каждая из которых открывает веб-сокет для сервера, на одной странице появляется сообщение на сервер, есть ли способ, которым другая страница может получить ответ? Любая помощь приветствуется.Получение возвращенного сообщения из веб-сокета в другом браузере

Благодаря

Первая страница, подключается и ждет сообщения

<html> 
<head> 
<script type="text/javascript" charset="utf-8"> 
    if("WebSocket" in window) { 
     var ws = new WebSocket("ws://localhost:12345/server.php"); 
    } 
    function startSocket() { 
     if("WebSocket" in window) { 
      ws.onopen = function (event) { 
       document.getElementById('status').innerHTML = "open: " + this.readyState; 
      } 

      ws.onmessage = function (message) { 
       alert(message.data);  
      } 
     } 
    } 
</script> 

</head> 
<body onLoad="startSocket()"> 
<div id="status"> 

</div> 
<div id="stock"> 

</div> 
</body> 
</html> 

Вторая страница отправляет сообщение на сервер с помощью веб-scoket

<html> 
<script type="text/javascript" charset="utf-8"> 
    if("WebSocket" in window) { 
     var ws = new WebSocket("ws://localhost:12345/server.php"); 
    } 
    function startSocket() { 
     if("WebSocket" in window) { 
      ws.onopen = function (event) { 
       document.getElementById('status').innerHTML = "open: " + this.readyState; 
      } 
     } 
    } 
    function send() {    
     var text = "hello"; 
     try { 
      ws.send(text); 
     } catch (exception) { 
      alert(exception.Description); 
     } 
    } 
</script> 

<body onLoad="startSocket()"> 
<div id="status"></div> 
<div id="stock"></div> 
<button onClick="send();">Left!</button> 
</body> 
</html> 

ответ

2

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

его точно так же, как передача информации из iframe на ее содержащую веб-страницу. безопасность предотвращает это, если две страницы находятся в разных доменах, поскольку это будет целью атак XSS.

DC

В вашем примере нет никакой связи между страницами. из вашего комментария. Я вижу, что вы пытаетесь внедрить систему чата. Таким образом, они не могут разговаривать друг с другом.

Извините, я думал, что обе страницы были размещены в том же браузере.

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

Также по умолчанию server.php отключится через 30 секунд. поэтому вам нужно отключить это.

То, что вы пытаетесь сделать, это гораздо сложнее, чем кажется, понимают

DC

+0

Эти две независимые pagesone может работать на одной машине, а другой на другой машине на полпути вокруг мира, но они оба находятся в одном домене –

+0

Я полагаю, что это должно быть возможным, потому что, как работают примеры чата в веб-часах, –

+0

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

Смежные вопросы