Skip to content

介绍

提供socket通信功能。

  • 可以使用socket.io-client 或 node.js的net模块,连接远程(java、go等)socket服务
  • 可以在第三方项目中,连接框架的socket服务,与EE框架通信

使用方法

javascript
const {
  Koa,
  IoServer,
  IoClient,
  loadSocket,
  getSocketServer,
  getHttpServer,
  getIpcServer
} = require('ee-core/socket');

API列表

getSocketServer()

获取socketServer实例对象。

javascript
const { getSocketServer } = require('ee-core/socket');

// 发消息到前端io-client on()监听的事件 或者 其它语言socket监听的事件
const SocketServer = getSocketServer();
SocketServer.io.emit("client 监听的event name", "数据");

SocketServer.io

实例化后的server对象,包含以下属性、方法:

  • 属性
javascript
// 文档:https://socket.io/docs/v4/server-api/#attributes
io.engine
io.sockets
  • 方法
javascript
// 文档:https://socket.io/docs/v4/server-api/#methods
io.adapter([value])
io.attach(httpServer[, options])
io.attach(port[, options])
io.attachApp(app[, options])
io.bind(engine)
io.close([callback])
io.disconnectSockets([close])
io.emit(eventName[, ...args])
io.emitWithAck(eventName[, ...args])
io.except(rooms)
io.fetchSockets()
io.in(room)
io.listen(httpServer[, options])
io.listen(port[, options])
io.of(nsp)
io.on(eventName, listener)
io.onconnection(socket)
io.path([value])
io.serveClient([value])
io.serverSideEmit(eventName[, ...args][, ack])
io.serverSideEmitWithAck(eventName[, ...args])
io.socketsJoin(rooms)
io.socketsLeave(rooms)
io.timeout(value)
io.to(room)
io.use(fn)

SocketServer.connec()

创建connection连接,并监听channel频道c1,实现渲染进程与主进程controller的通信。

SocketServer.socket

通过SocketServer.io('connection') 建立连接后的 socket 对象, 文档:https://socket.io/docs/v4/server-api#socket

可以调用该对象的上的属性/方法,来扩展功能。

getHttpServer()

获取httpServer实例对象。

javascript
// 顶部引入模块
const { getHttpServer } = require('ee-core/socket');

getIpcServer()

获取ipcServer实例对象。

javascript
// 顶部引入模块
const { getIpcServer } = require('ee-core/socket');

Koa

原始koa对象,等于require('koa')。提供基础库 - 避免用户重复安装

javascript
const { Koa } = require('ee-core/socket');

IoServer

原始socket.io对象,等于require('socket.io')。提供基础库 - 避免用户重复安装

javascript
const { IoServer } = require('ee-core/socket');

IoClient

原始socket.io-client对象,等于require('socket.io-client')。提供基础库 - 避免用户重复安装

javascript
const { IoClient } = require('ee-core/socket');

socket.io

官方文档:https://socket.io/