NodeJS 如何从另一个地方,而不是从主应用程序初始化脚本发出套接字io的事件?

xwbd5t1u  于 2023-01-25  发布在  Node.js
关注(0)|答案(1)|浏览(82)

如何从不同的脚本导出和发射套接字io?

mccptt67

mccptt671#

  • 通过此方法,仅在发出事件时方便
  • 可以像这样初始化类
    *服务器主文件
const { Server }= require('socket.io')

class socketioserver{
   constructor(){
       this.io=new Server(3000,{cors: {"Access-Control-Allow-Origin": "*",methods: ["GET", "POST", "OPTIONS"]},});
       this.io.on('connection',socket=>{
           console.log(socket.id)
       })
   }
   emit(eventName,data,id){
       if(id) return this.io.to(id).emit(eventName,data)
       this.io.emit(eventName,data)
   }
   on(eventName){
       return new Promise((resolve,reject)=>{
           this.io.on('connection',(socket)=>{
               socket.on(eventName,(data)=>{
                   resolve(data)
               })
           })
       })
   }
   io
}

const ioServer=new socketioserver()
ioServer.emit('apple','🍎')
  • 以下类可以在任何位置初始化,然后导入到任何其他文件中,以便将事件发射到同一服务器
    *客户端浏览器Javascript
const socket = io("http://localhost:3000")
  socket.on('connect', () => {
   socket.on('apple', (data) => {
   console.log(data)
  })

相关问题