1

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

我已经在我的树莓派上安装了 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 的主计算机上。

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

4

2 回答 2

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改用。

于 2013-07-09T10:42:44.817 回答
0

它在这里说

var socket = io()

默认情况下连接到主机服务器,这意味着您不必在其中放置任何东西

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

于 2014-12-22T20:03:41.373 回答