Socket.io - 无法加载文件

时间:2013-10-11 12:01:06

标签: php node.js sockets laravel laravel-4

我使用Node.js,socket.io和express制作了一个网络聊天应用程序。它运作良好。
现在我想将我的聊天应用程序移到我的网站上,但我对路径有疑问 我的网站基于 Laravel framework ,并且具有此结构。

Website
    /public
        /js
            /jquery1-10.js
            /chat.js        ----> client side chat file.
    /app.js                 ----> node.js server side file.
    /index.php

Laravel使用布局,因此在index.php文件中,URL::asset('/path-to-file')适用于公共目录中的所有文件。包括样式表和javascript。

在我的index.php文件中,我用这种方式调用javascripts:

<script src="{{ asset('js/jquery1-10.js'); }}" ></script> // public/js/jquery1-10.js
<script src="{{ asset('js/chat.js'); }}" ></script>  // public/js/chat.js
<script src="{{ asset('/socket.io/socket.io.js'); }}" ></script> // ???

jquery1-10.jschat.js加载良好 但是无法加载socket.io文件。我认为socket.io自动创建!我不知道它在哪里。
有人可以帮我吗?

这是app.js档案:

var http = require("http");
var express = require("express"),
app = express(),
server = http.createServer(app),
io = require("socket.io").listen(server);
server.listen(4000);

app.get("/*", function( req, res ) {
    res.sendfile( __dirname + "/index.php" );
});

这是我的chat.js文件 - &gt;客户方。

jQuery( function($){
var socket = io.connect(); ---> error happens here. can not load socket.io.js file

解决

好吧,我用过这句话:
<script src="http://localhost:4000/socket.io/socket.io.js" ></script>

而不是这个:
<script src="{{ asset('/socket.io/socket.io.js'); }}" ></script>

并且运作良好。

1 个答案:

答案 0 :(得分:1)

你有没有修复或找到任何解决方案?我有同样的问题,但是当你将IP地址放在io.connect parameter上时,它应该可以正常工作。

示例:

io.connect("YOUR_IP_ADDRESS:4000")