簡體   English   中英

如何在vue js中從客戶端觸發推送事件?

[英]How to trigger pusher event from client side in vue js?

我正在將 ionic 與 vue js 移動應用程序一起使用。 當移動用戶的位置發生變化時,我想從客戶端觸發事件。

 methods: {
    getLocation: function () {
      const geolocation = new GeolocationService.Geolocation();
   
     let watch = geolocation.watchPosition();
  watch.subscribe((data) => {
    console.log('data',data)

    //Trigger pusher event here 

  });
    
      
    },
  },

然后我想在 jquery 的幫助下在我的 web 應用程序上收聽該事件。 但我不知道如何從客戶端觸發推送事件

我正在使用這個推桿 package

https://www.npmjs.com/package/vue-pusher

關於觸發客戶端事件的 Pusher 文檔包含您案例的所有信息。

從...開始:

使用 Channels 時,並非所有流量都需要通過傳統的 web 服務器到達 go。 某些操作可能不需要驗證或持久性,並且可以 go 直接通過套接字連接到通道的所有其他客戶端。

需要強調的其他一些重要事項:

  • 必須為 Pusher 儀表板內的應用程序啟用客戶端事件。
  • 用戶必須訂閱觸發事件的頻道。
  • 客戶端事件只能在私有和在線通道上觸發,因為它們需要身份驗證。 所以理解Pusher 認證是必須的。
  • 每個客戶端(連接)每秒發布不超過 10 條消息。 因此,每秒更改用戶位置應該不是問題。

使用像vue-pusher這樣的包裝器是完全可選的,你總是可以實例化一個new Pusher並直接使用客戶端。 但如果你真的喜歡包裝器,你的代碼可能是這樣的:

 export default { data() { return { channel: null }; }, created() { this.channel = this.$pusher.subscribe('private-positions'); }, methods: { getLocation() { const geolocation = new GeolocationService.Geolocation(); const watchPosition = geolocation.watchPosition(); watchPosition.subscribe((data) => { this.channel.trigger("client-positionChanged", { data }); }); } } }

當然也應該考慮 Pusher 認證部分。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM