繁体   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