javascript - Socket.IO 广播发射不工作如何解决它,
问题描述
嘿,我正在尝试向连接到服务器的每个人发送消息,除了新用户连接之外,新用户已连接,所以我正在使用 socket.broadcast.emit() 但它不会在浏览器控制台中启动
我的代码:
const path = require('path')
const http = require('http')
const express = require('express')
const socketio = require('socket.io')
const app = express()
const server = http.createServer(app)
const io = socketio(server)
const port = process.env.PORT || 3000
const publicDirectoryPath = path.join(__dirname,'../public')
app.use(express.static(publicDirectoryPath))
io.on('connection',(socket)=>{
console.log('New web socket connection')
socket.emit('welcome',"Welcome !")
socket.broadcast.emit('message','A new user has joined !')
socket.on('sendMessage',(message)=>{
io.emit('messageSent',message)
})
})
server.listen(port,()=>{
console.log('Server is up on 3000')
})
解决方案
您可以发送给所有人(包括您自己):
io.emit(...)
或者对其他所有人(但不是你自己 - 即不是socket
):
socket.broadcast.emit(...)
推荐阅读
- android - Android RadioGroup 在双向数据绑定中获取选中的 RadioButton 索引(位置)
- ios - 在应用程序而不是 Safari 中打开 LPLinkView url
- java - while (1) 带有 continue 和 break 语句的循环
- r - rstatix 包安装
- ssl - Nginx + OCSP - 大量“请求证书状态时 OCSP 响应程序超时(110:连接超时)”相当正常吗?
- vim - 在 Vim 中修改 Ctrl-G
- error-handling - 我使用 Simply Fortran,但不能在那里包含模块
- mysql - MySQL选择行,其中列包含列表中的元素
- matlab - Matlab尾数基
- vba - 如何使用 VBA 将 PowerPoint 中图像的位置从厘米到点