首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >juggernaut文件服务

juggernaut文件服务
EN

Stack Overflow用户
提问于 2011-09-02 16:15:22
回答 1查看 821关注 0票数 0

我正在用juggernaut开发实时通知程序

正如您所知道的,当客户端尝试连接时,juggernaut将服务于其公共目录中的文件。所以处理过程是这样的:

(1)浏览器连接8080端口(juggernaut监听端口)

(2)juggernaut get connection请求,socket连接完成。

(3)juggernaut向客户端发送html文件,这是它的公共目录

(4)浏览器从juggernaut获取html和js文件,并开始与juggernaut通信。

它在我的服务器上运行得很好。这是linux控制台。

代码语言:javascript
复制
[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

在浏览器中,你可以看到连接的结果。

但是,我不想从juggernaut获得html和js文件。这意味着我有web服务器,并希望将文件与我的php项目文件集成。

在主页中,我插入了juggernaut相关(包括连接)代码。这是我的main.php页面片段

代码语言:javascript
复制
<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控制台)

代码语言:javascript
复制
"NetworkError: 404 Not Found - http://myhost.org:8080/socket.io/1/?t=1314949832960&jsonp=0"

这是错的吗?所以我必须把它们放在juggernaut的公共目录中,并且必须从juggernaut获取它们?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-09-02 17:05:30

我自己解决了这个问题。

我像这样修复了javascript路径,

原件:

代码语言: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>

已修复:

代码语言:javascript
复制
<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>

然而,我不明白为什么这个修复可以解决这个问题。无论如何,效果很好~ ^^;希望对您有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7280811

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档