【问题标题】:socket.io emit question : How does an io emit itself?socket.io 发射问题:io 如何发射自身?
【发布时间】: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


【解决方案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 ..

虽然它“有效”)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-11
    • 2017-10-19
    相关资源
    最近更新 更多