问题描述
套接字在哈巴狗中不起作用。当我声明var socket = io();在script标签内部,它不起作用,但是当我在broadcastComment函数中声明它时,它可以工作,但是作为它的本地变量,socket.on函数不起作用。有什么办法可以在脚本中正确声明套接字变量。
服务器端:-
const server = application.listen("3000",()=>{
console.log("server started");
});
let io = require('socket.io')(server)
io.on('connection',(socket)=>{
console.log(`New Connection: ${socket.id}`)
// Recieve event
socket.on('comment',(data)=>{
console.log(data)
data.time = Date()
socket.broadcast.emit('comment',data)
})
})
客户端:-
script.
var socket = io();
function broadcastComment(data){
//socket works if i declare here var socket = io();
socket.emit('comment',data)
}
socket.on('comment',(data)=>{
appendTodom(data)
})
如果我声明var socket = io();然后在函数broadcastComment内部起作用,但是随后socket.broadcast.emit不起作用
服务器端的输出(当我声明var socket = io();在broadcastComment()内部时):
新连接:通过FVY8KAa6sNx0p6AAAA {用户名:'niraj',用户类型:'developer',注释:'xcvx'}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)