我正在开发实时通知器 juggernaut
如您所知,当客户端尝试连接时,
juggernaut提供其公共目录中的文件。
所以处理是这样的:
(1)浏览器连接8080端口(juggernaut监听端口)
(2)juggernaut得到连接请求,并且套接字连接完成
(3)juggernaut发送客户端html文件,这是其公共目录
(4)浏览器从juggernaut获取html和js文件,并开始与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
在浏览器中,您可以看到连接结果
但是,我不想从juggernaut获取html和js文件。
这意味着我有Web服务器,并希望集成文件
用我的php项目文件。
在主页面我插入了juggernaut相关(包括连接)代码。
这是我的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"
这是错的吗?所以我必须将它们放在juggernaut的公共目录中 必须从剑圣中获取它们吗?
答案 0 :(得分:0)
我自己解决了这个问题。
我修复了这样的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>
然而,我不明白为什么这个修复会解决这个问题。 无论如何运作良好〜^^; 希望这有帮助。