我正在尝试设置我的代码功能,以便在io连接上,我之后有一个socket.emit
,这会将变量从server.js
保存到client.js
。
奇怪的是,当我在学校台式计算机上工作时,代码运行得非常好,但是一旦我将文件传输到我的家用桌面,代码就无法正常运行
从我的应用程序运行代码时,console.log
上的client.js
不会发生
相关代码:
server.js
var http = require('http').Server(app);
var path = require('path');
var io = require('socket.io')(http);
var userLog = io.of('/logged');
userLog.on('connect', function(socket) {
// Send current user to client
socket.emit('saveUser', ({user:currentUser}))
console.log(currentUser + ' has connected');
}
client.js:
$(document).ready(function() {
var me;
socket.on('saveUser', function(data) {
console.log(data)
console.log(data[0])
me = data.user;
console.log("i am " + me);
})
}
home.ejs
<script src="./socket.io/socket.io.js"></script>
<script>var socket = io('/logged');</script>
<script src="js/jquery.min.js"></script>
<script src="js/client.js"></script>
答案 0 :(得分:1)
将socket.on('saveUser', ...)
移到$(document).ready()
之外,并在建立socket.io连接后立即将其放置。
如果在文档准备好之前收到'saveUser'
消息,则在消息到达时您将不会安装事件处理程序,您将错过它。