直播app開發,實現簡單的釋出訂閱者模式
直播app開發,實現簡單的釋出訂閱者模式
1.首先想好誰是釋出者
2.給釋出者新增一個快取列表,存放回撥函式通知訂閱者
3. 釋出訊息,釋出者遍歷快取列表,依次觸發裡面存放的訂閱者回撥函式
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> </head> <body> <script> //釋出者 var showObj = {} //快取列表 存放回撥函式 showObj.list = [] //增加訂閱者 把訂閱者的回撥壓入快取列表 showObj.listen = function(key,fn){ if(!this.list[key]) { this.list[key] = [] } //索引為key的那一項是一個陣列 往不同的key裡存放不同的訂閱者 這樣就可區分開來 this.list[key].push(fn) } //釋出訊息 showObj.trigger = function() { //取出key var key = Array.prototype.shift.call(arguments) var fns = this.list[key] if(!fns || fns.length == 0) { return } //遍歷這個陣列 執行這個函式 for(let i = 0,fn;fn = fns[i++];) { fn.apply(this,arguments) } } //移除訂閱 // showObj.remove = function(key,fn){ // var fns = this.list[key] // if(!fns) { // return // } // if(!fn) { // !fns && (fns.length === 0) // } else { // for(var i = fns.length - 1; i >= 0; i--) { // var _fn = fns[i] // if(_fn === fn) { // fns.splice(i,1) // } // } // } // } //訂閱訊息 showObj.listen('red',function(size){ // console.log('顏色是'+color) console.log('尺碼是'+size) }) showObj.listen('black',function(size){ // console.log('顏色是'+color) console.log('尺碼是'+size) }) //釋出訊息 showObj.trigger('red',37) showObj.trigger('black',41) // showObj.remove('red') </script> </body> </html>
以上就是直播app開發,實現簡單的釋出訂閱者模式, 更多內容歡迎關注之後的文章
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69978258/viewspace-2930542/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- js 實現簡單釋出訂閱模式JS模式
- 如何實現一個簡單的釋出訂閱模式模式
- C++釋出訂閱者模式:實現簡單訊息傳遞系統C++模式
- 直播平臺開發中,策略模式和釋出訂閱模式的使用模式
- 觀察者模式-訂閱釋出模式模式
- js 觀察者模式 訂閱釋出模式JS模式
- 觀察者模式 vs 釋出訂閱模式模式
- 觀察者模式 vs 釋出-訂閱模式模式
- 觀察者模式(又叫釋出-訂閱模式)模式
- 對釋出-訂閱者模式的解析模式
- 釋出訂閱 VS 觀察者模式模式
- JavaScript 觀察者 (釋出/訂閱) 模式JavaScript模式
- 使用 es3、es5、es6 實現簡單工廠模式、單例模式、觀察者模式、釋出訂閱模式S3模式單例
- 觀察者模式和釋出訂閱模式(上)模式
- 釋出-訂閱模式模式
- 釋出訂閱模式模式
- 設計模式之釋出訂閱模式(2) Redis 釋出/訂閱模式設計模式Redis
- 面試官:請實現Javascript釋出-訂閱模式面試JavaScript模式
- 談談觀察者模式和釋出訂閱模式模式
- javascript(js) 觀察者模式和釋出訂閱模式JavaScriptJS模式
- JavaScript設計模式 觀察者模式(釋出訂閱)JavaScript設計模式
- 理解javascript觀察者模式(訂閱者與釋出者)JavaScript模式
- 通過釋出訂閱模式實現的事件委託模式事件
- 設計模式之單例、工廠、釋出訂閱者模式設計模式設計模式單例
- JS訂閱釋出模式JS模式
- ActiveMQ釋出訂閱模式MQ模式
- [實戰]laravel + redis訂閱釋出 +swoole實現實時訂單通知LaravelRedis
- 觀察者模式與釋出訂閱模式區別 - JS模式JS
- 設計模式(三)觀察者模式Observer(釋出訂閱)設計模式Server
- 用C++編寫一個簡單的釋出者和訂閱者C++
- 簡單的寫一個釋出訂閱器
- CRM中介軟體裡的釋出-訂閱者模式模式
- 釋出-訂閱方式實現非同步併發非同步
- node 訂閱釋出及實現
- 設計模式之釋出訂閱模式(1) 一文搞懂釋出訂閱模式設計模式
- 淺談觀察者模式和釋出訂閱者模式的微妙區別模式
- 重構與模式(二)——釋出訂閱模式與中介者模式實際使用模式
- JavaScript 設計模式之觀察者模式與釋出訂閱模式JavaScript設計模式