我用Node.js、socket.io 和express做了一个网络聊天应用程序。它运行良好.
现在我想将我的聊天应用程序移动到我的网站,但我在 paths.
时遇到问题我的网站基于Laravel框架并具有此结构。
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
文件中,我以这种方式调用javascript:
<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.js
和chat.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" );
});
这是我的聊天.js文件 -->客户端。
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>
而且效果很好。
您是否为此修复或找到了任何解决方案?我有同样的问题,尽管当您将IP地址放在io.connect parameter
上时,它应该可以工作。
例:
io.connect("YOUR_IP_ADDRESS:4000")