socket.broadcast.emit未发送到客户端



我正在尝试制作一个简单的聊天应用程序,到目前为止,一切都能正常工作,直到我完成了必须将消息发送给除发送消息的用户之外的所有连接用户的部分,我试着遵循教程,参考文档,但没有任何效果,所以我不知道,我对Node和JS一般来说都是新手。代码:

//server side 
const io = require("socket.io")(3000)

io.on("connection", socket => {
console.log("New User ")
socket.on("chat-message", message => {
if (message !== "") {
socket.broadcast.emit("broadcast-message", message)
} else {
console.log("Empty String")
}
})
})
//client side
const socket = io("http://localhost:3000")
const messageForm = document.getElementById("send-container")
const messageInput = document.getElementById("message-input")
messageForm.addEventListener("submit", event => {
event.preventDefault()
const message = messageInput.value
socket.emit("chat-message", message)
messageInput.value = ""
})
socket.on("broadcast-message", message => {
console.log("broadcast : " + message)
})

我觉得设置服务器有问题,试试这个。

//server-side
const express=require("express")
const app=express()
const server=require("http").createServer(app)
//pass server variable instead of port
const io=require("socket.io")(server)
server.listen(3000,()=>console.log(`Listening to port 3000`))

在客户端中,只需要socket=io()。如果您传递localhost URL,这将在部署后引发错误

最新更新