socket.io 发射问题:io 如何发射自身?
Posted
技术标签:
【中文标题】socket.io 发射问题:io 如何发射自身?【英文标题】:socket.io emit question : How does an io emit itself? 【发布时间】: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', ...)
处理程序中,那么你会收到这条消息。
【参考方案1】:
我找到了答案……谢谢大家!!我真的好开心!!
Node.js client for a socket.io server
//client.js
var io = require('socket.io-client');
var socket = io.connect('http://localhost:3000', reconnect: true);
socket.emit('CH01', 'me', 'test msg');
经过这么长时间的学习...感觉很累 但我想我终于可以开始构建一些东西了 XD
谢谢!!!!!!
(顺便说一下,在我选择这种方式之前, 我实际上是在使用 puppeteer 访问网站以发送 emit ..
虽然它“有效”)
【讨论】:
以上是关于socket.io 发射问题:io 如何发射自身?的主要内容,如果未能解决你的问题,请参考以下文章
如何重用 socket.io 发射功能?试图将套接字发射功能附加到 SwiftUI 按钮(操作)?
如何从 socket.io-redis 发送私人消息(发射)
如何在套接字函数之外使用(socket.io)发射函数-nodejs,express