4 回答
TA贡献1846条经验 获得超7个赞
请参阅此文档:https://pusher.com/docs/channels/using_channels/events#triggering-client-events
根据推送器文档,使用此按钮初始化前端
this.echo = new Pusher('mykey', {
wsHost: 'localhost',
wsPort: 6001,
forceTLS: false,
disableStats: true,
enabledTransports: ['ws', 'wss']
});
用它来触发您的事件
var channel = this.echo.subscribe("private-channel");
channel.bind("pusher:subscription_succeeded", () => {
var triggered = channel.trigger("client-someEventName", {
your: "data",
});
});
TA贡献1802条经验 获得超5个赞
我可能不正确,但我不相信你可以用他们的包裹推到Puster。这就是作曲家包的用途。pusher-js
pusher-php-server
可能有一个节点包可以做到这一点,但你为什么要尝试重新发明轮子呢?只需使用 axios 或 Vuex 操作发布到您的某个路由以触发事件,然后让 Echo 拾取响应。
您甚至不需要创建控制器,只需使用路由闭合并触发事件即可。Axios 或 Vuex 都将返回一个 Promise,以便您可以管理组件或 Vuex 操作中响应的等待。
我可以理解,如果你试图实现一个不同类型的驱动程序来广播,比如RabbitMQ或Rachet之类的,但它被设计成一个循环的循环,从js击中你的端点,从PHP触发事件,让Puster/或websockets做它的事情,在js中接收你的广播。
TA贡献1848条经验 获得超2个赞
初始化Echo后,您需要在前端的某个通道上进行侦听。我将展示一些 Vue 代码,但会相应地进行修改:
Vue File
export default {
methods: {
sendCommand(command) {
axios.post('/api/command', { 'command': command })
.then((res) => {
//
})
}
},
mounted() {
Echo.channel('xxx')
.listen('.weight-change', (e) => {
this.weight = e.weight
})
}
}
在这里,您可以看到所有传入消息都在代码的侦听部分捕获,并且使用后端的 api 路由发送新消息,该路由将它们发送到 Echo 通道。
如果您需要任何澄清,请告诉我。
TA贡献1860条经验 获得超9个赞
对于可能面临此问题的每个人。
您不需要回声,应直接从推杆实例化
const my_pusher = new Pusher("APP_KEY", {
cluster: 'mt1',
wsHost: window.location.hostname,
wsPort: 6001,
forceTLS: false,
disableStats: true,
});
并向服务器发送消息:
my_pusher.send_event('EVENT_NAME',{'ANYTHING':'YOU_WANT'})
- 4 回答
- 0 关注
- 173 浏览
添加回答
举报