我正在查看此存储库并注意到作者已在app.js中声明了一个变量(io):
/* Socket.io Communication */
var io = require('socket.io').listen(server);
io.sockets.on('connection', socket);
他在public/js/app.js中再次引用变量,但似乎根本没有像我通常期望的那样引用外部javascript文件,所以我很惊讶这不会导致ReferenceError。
有人可以请我澄清一下这个允许外部引用io工作的例子吗?非常感谢提前。
答案 0 :(得分:2)
public / js / app.js 是客户端javascript,将在浏览器中运行。如果你看一下 index.html ,你会看到socket.io的客户端版本包含在底部,它定义了一个全局io
var。
https://github.com/DanialK/ReactJS-Realtime-Chat/blob/master/public/index.html#L12