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 關注
- 231 瀏覽
添加回答
舉報