【发布时间】:2020-11-10 11:02:11
【问题描述】:
我想在 express 路由器中使用 emit 事件, 所以我正在尝试通过 global.io。
但问题是,即使我添加了这段代码
io.emit('join','Tudis')
在 server.js 中,我看不到任何响应输出,
(我认为应该有“有人加入:Tudis” 编译后吗?) 请赐教,非常感谢。
-----server.js的代码---------
const express = require('express')
const socketio=require('socket.io')
const http=require('http')
const serverPORT=5000
const app = express();
const server = http.createServer(app)
const io=socketio(server)
io.on('connection',(socket)=>{
socket.on('join',(name)=>{
console.log('someone joined :' + name)
})
})
global.io=io
const router=require('./router')
app.use(router)
io.emit('join','Tudis')
server.listen(serverPORT,
()=> console.log('server is up at : '+serverPORT)
)
【问题讨论】:
-
嗨,我认为您需要一个客户端也连接到您的服务器所连接的套接字,并且您的客户端应该发出此消息
'join' -
我个人推荐你使用这个socket.io client工具,将它连接到你的服务器并发送消息'
join' -
在您执行
io.emit('join', 'Tudis')时,您的服务器刚刚启动并且没有连接的客户端。因此,该消息不会发送给任何人,因为没有人可以将其发送给任何人。如果你把它放在socket.on('join', ...)处理程序中,那么你会收到这条消息。
标签: javascript express socket.io emit