首頁  >  文章  >  web前端  >  Vue Socket.io源碼詳細分析

Vue Socket.io源碼詳細分析

亚连
亚连原創
2018-06-07 11:55:142321瀏覽

這篇文章主要介紹了Vue Socket.io原始碼解讀,現在分享給大家,也給大家做個參考。

背景

有一個項目,今年12月份開始重構,項目涉及了socket。但是socket用的是以前一個開發人員封裝的包(這個一直被目前的成員吐槽為什麼不用已經千錘百煉的輪子)。因此,趁著這個重構的機會,將vue-socket.io引入,後端就用socket.io。我也好奇看了看vue-socket.io的源碼(我不會說是因為這個庫的文檔實在太簡略了,我為了穩點去看源碼了解該怎麼用)

開始

文件架構

#我們主要看src下的三個文件,可以看出該函式庫是用了觀察者模式

Main.js

// 这里创建一个observe对象,具体做了什么可以看Observer.js文件
let observer = new Observer(connection, store)

// 将socket挂载到了vue的原型上,然后就可以
// 在vue实例中就可以this.$socket.emit('xxx', {})
Vue.prototype.$socket = observer.Socket;
import store from './yourstore'
Vue.use(VueSocketio, socketio('http://socketserver.com:1923'), store);

我們如果要使用這個函式庫的時候,一般是這樣寫的程式碼(上圖2)。上圖一的connection和store分別是圖二的後兩個參數。意思分別為socket連接的url和vuex的store啦。圖一就是將這兩個參數傳進Observer,新建了一個observe對象,然後將observe物件的socket屬性掛載在Vue原型上。那麼我們在Vue的實例中就可以直接 this.$sockets.emit('xxx', {})了

// 

以上是Vue Socket.io源碼詳細分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn