Socket.io - 无法加载文件或未定义io

时间:2013-07-09 10:31:55

标签: node.js socket.io

我正在尝试设置一个简单的NodeJS - socket.io Web应用程序。

我在Raspberry pi上安装了NodeJS和Socket.io,我可以毫无问题地启动服务器脚本。

我已经下载了客户端socket.io,我正在前端脚本中加载。

我的问题是,每当我尝试连接到我的服务器时,我的浏览器都会给我这些错误。

Error: failed to require "socket.io" from "root"
...plete}}});require.register("learnboost-engine.io-client/lib/transports/websocket...

socket.io.js (linje 1)
ReferenceError: io is not defined

var socket = io.connect('http://192.168.0.105:8888');

这是服务器脚本。

var io = require('socket.io').listen(8888);

io.sockets.on('connection', function (socket) {
  socket.emit('news', { hello: 'world' });
  socket.on('my other event', function (data) {
    console.log(data);
  });
});
console.log('Running fine');

这是我的前端脚本。

<!--<script src="localhost:8080/socket.io/socket.io.js"></script>-->
<script src="/socket.io/socket.io.js"></script>
<script>
    var socket = io.connect('http://192.168.0.105:8888');
    socket.on('news', function (data) {
      console.log(data);
      socket.emit('my other event', { my: 'data' });
    });           
</script>

我的Raspberry pi正在托管nodejs - socket.io,该网站托管在我的主计算机上,使用Wampserver。

我真的希望有人可以帮助我:)先谢谢你。

2 个答案:

答案 0 :(得分:2)

Socket.io.js由NodeJS服务器托管,因此您应该连接到

<script src="192.168.0.105:8888/socket.io/socket.io.js"></script>

http://192.168.0.105:8888错误,http表示您要使用端口80 你应该使用192.168.0.105:8888代替。

答案 1 :(得分:0)

它在这里说

var socket = io()

默认连接到主机服务器,这意味着您不必在其中放置任何内容

http://socket.io/get-started/chat/