原生JS实现发布订阅功能

var bus = {

  list: [],

  //订阅
  subscribe(callback) {
    this.list.push(callback)
  },

  //发布
  publish(text) {
    console.log('打印所有订阅者的方法:' + this.list)
    console.log('打印发布者的发布的数据:' + text)
    //遍历所有的list,将回调函数执行
    this.list.forEach((item) => {
      item && item(text)
    })
  },
}

//订阅者
bus.subscribe((callback) => {
  console.log('接收发布者的数据:', callback)
})

//发布者
setTimeout(() => {
  bus.publish('我发了一句话')
}, 0)

必须在发布之前订阅,否则订阅者接收不到数据

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
WebSockets 是一种在客户端和服务器之间建立持久性连接的通信协议。它允许服务器主动向客户端推送数据,而不需要客户端发起请求。 要实现发布-订阅模式的 WebSocket,你可以使用以下步骤: 1. 建立 WebSocket 连接:客户端通过向服务器发起 WebSocket 连接来建立与服务器的通信通道。 2. 发布消息:服务器可以将消息发送到所有订阅了特定频道或主题的客户端。这意味着服务器会向所有订阅该频道的客户端发送相同的消息。 3. 订阅频道:客户端可以向服务器发送一个订阅请求,指示服务器订阅特定的频道或主题。当服务器有关于该频道的新消息时,它会将消息推送给所有订阅了该频道的客户端。 4. 取消订阅:客户端也可以向服务器发送取消订阅的请求,以停止接收特定频道的消息。 在实际应用中,你可以使用不同的库或框架来实现 WebSocket 的发布-订阅模式,例如: - WebSocket API: 原生 JavaScript 提供了 WebSocket API,你可以使用它来创建 WebSocket 连接,并发送和接收消息。 - Socket.IO: Socket.IO 是一个流行的 WebSocket 库,它提供了跨浏览器的双向通信。它支持发布-订阅模式,并且还提供了其他功能,如房间管理、实时事件等。 - MQTT over WebSocket: MQTT 是一种轻量级的消息队列传输协议,它可以在 WebSocket 上运行。使用 MQTT over WebSocket,你可以实现高效的发布-订阅模式。 这只是一些实现 WebSocket 发布-订阅模式的方式,具体选择取决于你的需求和技术栈。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值