Skip to content

Diagnostics Channel

node:diagnostics_channel 模块提供了一个 API,用于创建命名通道以报告任意消息数据以进行诊断

js
const diagnostics_channel = require('node:diagnostics_channel')

// 生成一个通道对象
const channel = diagnostics_channel.channel('my-channel')

// 通道接受消息
function onMessage(message, name) {
  console.log(message, name, 'message')
  // 输出结果:{ some: 'data' } my-channel message
}

// 开启订阅频道
diagnostics_channel.subscribe('my-channel', onMessage)

// 判断 channel 这个频道是否存在,并且已开启
// 还可这么写,来判断某个通道是否存在
// diagnostics_channel.hasSubscribers('my-channel')
if (channel.hasSubscribers) {
  // 向通道发送数据
  channel.publish({
    some: 'data',
  });
}

// 取消订阅频道
diagnostics_channel.unsubscribe('my-channel', onMessage);

Released under the MIT License.