подача джаггернаутских файлов - PullRequest
0 голосов
/ 02 сентября 2011

Я занимаюсь разработкой уведомлений в режиме реального времени с Джаггернаутом

Как вы знаете, когда клиент пытается подключиться, juggernaut обслуживает файлы, которые находятся в его публичном каталоге.поэтому обработка выглядит так:(1) браузер подключить порт 8080 (порт прослушивания Джаггернаут)(2) Джаггернаут получает запрос на подключение, и подключение к сокету завершено.(3) juggernaut отправляет клиенту html-файлы, которые являются его общедоступным каталогом(4) браузер получает html и js файлы от juggernaut и начинает общаться с juggernaut.Это хорошо работает на моем сервере.это консоль linux.

[jinbom@localhost gojug]# juggernaut
2 Sep 17:38:53 - socket.io ready - accepting connections
2 Sep 17:38:57 - Serving / - OK
2 Sep 17:38:57 - Serving /json.js - OK
2 Sep 17:38:57 - Serving /juggernaut.js - OK
2 Sep 17:38:57 - Serving /socket_io.js - OK
2 Sep 17:38:57 - Serving /WebSocketMain.swf - OK

в браузере вы можете увидеть связанный результат.enter image description hereНо я не хочу получать html и js файлы от juggernaut.Это означает, что у меня есть веб-сервер, и я хочу интегрировать файлы с моими файлами проекта php.На главной странице я вставил соответствующий джаггернаутский код (включая подключение).это мой фрагмент страницы main.php

<script src="http://myhost.org/json.js" type="text/javascript" charset="utf-8"></script>
  <script src="http://myhost.org/socket_io.js" type="text/javascript" charset="utf-8"></script>
  <script src="http://myhost.org/juggernaut.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript" charset="utf-8">
    var logElement = document.getElementById("log");
    logElement.value = "";
    var log = function(data){
      logElement.value += (data + "\n");
    };

    var jug = new Juggernaut({
      secure: ('https:' == document.location.protocol),
      host: document.location.hostname,
      port: document.location.port || 80
    });

    jug.on("connect", function(){ log("Connected") });
    jug.on("disconnect", function(){ log("Disconnected") });
    jug.on("reconnect", function(){ log("Reconnecting") });

    log("Subscribing to channel1");

    jug.subscribe("channel1", function(data){
      log("Got data: " + data);
    });

    // Expose for debugging
    window.jug = jug;
  </script>

Я просто интегрирую файлы публичных каталогов juggernaut в мои php-файлы клиента.

Когда я пытаюсь это сделать, браузер не может подключиться к juggernaut.Я думаю, что это ошибка socket.io.(консоль firebug)

"NetworkError: 404 Not Found - http://myhost.org:8080/socket.io/1/?t=1314949832960&jsonp=0"

это неправильно?поэтому я должен поместить их в публичный каталог Джаггернаута и получить их от Джаггернаута?

1 Ответ

0 голосов
/ 02 сентября 2011

Я решил эту проблему самостоятельно.

Я исправил путь к JavaScript, как это,

оригинал:

<script src="http://myhost.org/socket_io.js" type="text/javascript" charset="utf-8"></script>
<script src="http://myhost.org/juggernaut.js" type="text/javascript" charset="utf-8"></script>

исправлено:

<script src="http://myhost.org:8080/socket_io.js" type="text/javascript" charset="utf-8"></script>
<script src="http://myhost.org:8080/juggernaut.js" type="text/javascript" charset="utf-8"></script>

пока я не понимаю, почему это исправление позволяет решить эту проблему.в любом случае работает хорошо ~ ^^;Надеюсь, что это поможет.

...