套接字不起作用我正在尝试使用哈巴狗模板在node.js中构建评论系统,但socket.io似乎无法正常工作

问题描述

套接字在哈巴狗中不起作用。当我声明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 (将#修改为@)