4 回答
TA贡献1795条经验 获得超7个赞
请参阅此文档:https ://pusher.com/docs/channels/using_channels/events#triggering-client-events
根据 pusher 文档,使用这个初始化你的前端
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贡献1829条经验 获得超6个赞
我可能不正确,但我不相信你可以用他们的pusher-js
包裹推送给 Pusher。这就是pusher-php-server
作曲家包的用途。
可能有一个节点包,但你为什么要重新发明轮子?只需使用 axios 或 Vuex 操作发布到您的一条路线以触发您的事件,然后让 Echo 获取响应。
您甚至不需要创建控制器,只需使用路由关闭并触发您的事件。Axios 或 Vuex 都将返回一个 Promise,因此您可以在组件或 Vuex 操作中管理等待响应。
我可以理解您是否尝试使用 RabbitMQ 或 Rachet 等实现不同类型的广播驱动程序,但它被设计为某种循环循环,从 js 命中您的端点,从 PHP 触发事件,让 Pusher/或者 websockets 做这件事,用 js 接收你的广播。
TA贡献1891条经验 获得超3个赞
初始化 Echo 后,您需要在前端的某个频道上收听。我将展示一些 Vue 代码,但要进行相应的修改:
Vue文件
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贡献1811条经验 获得超4个赞
对于每个可能面临这个问题的人。
您不需要回显,应该直接从 Pusher 实例化
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 关注
- 301 浏览
添加回答
举报