Javascript 如何在Laravel和VueJs中加载页面时通过web套接字发出客户端事件?
在上的文档之后,我成功地设置了web套接字,使用Vue.Js组件中的以下代码发出客户端事件,一切正常:Javascript 如何在Laravel和VueJs中加载页面时通过web套接字发出客户端事件?,javascript,laravel,vue.js,websocket,Javascript,Laravel,Vue.js,Websocket,在上的文档之后,我成功地设置了web套接字,使用Vue.Js组件中的以下代码发出客户端事件,一切正常: updated() { // The event is not being emitted on page load. Echo.private('chat').whisper('typing', dataObject }); }, mounted() { // The event is not being emitted on page load. Echo.
updated() {
// The event is not being emitted on page load.
Echo.private('chat').whisper('typing', dataObject });
},
mounted() {
// The event is not being emitted on page load.
Echo.private('chat').whisper('typing', dataObject });
},
created() {
// The event is not being emitted on page load.
Echo.private('chat').whisper('typing', dataObject });
},
methods: {
submit() { // Event will only be emitted when this `submit()` method is being called by an input field event like `@input`, `@change` etc.
Echo.private('chat').whisper('typing', dataObject });
}
}
我希望在加载页面时在客户端发出事件,因为我有默认的可访问数据对象
我在Vue.Js生命周期挂钩中尝试了上述代码,例如创建的,挂载的和更新的。但该事件无法在页面加载时发出
如何在Laravel和Vue.Js中加载页面时通过web套接字发出客户端事件?是否收到任何错误消息?我想您是在某处调用submit()
?因为代码本身没有任何作用。要使用它,您需要将this.submit()
添加到挂载的(afaik)中,或者将Echo….
命令移到那里。我没有收到任何错误。事件只是没有在页面加载时发出。我跳过html模板。submit()
函数可以通过任何输入事件调用,如@input
或@change`。那很好。现在我需要在页面加载时发出/广播事件。你知道怎么做吗?你能做一些基本的调试吗?你放在挂载的中的任何东西都会被调用吗?如果不是,那就是您的问题,它与使用Laravel的Echo
完全无关。通常,VueJs生命周期挂钩中的任何内容都将被执行,包括挂载的
。这不是问题所在。问题是在这些钩子的执行过程中无法发出事件。可能是因为客户端首先需要连接到websocket并订阅。我不确定。但解决方法是将Echo…
放入setTimeout()
中,以稍微延迟它。它在创建的
或装载的
中都能很好地工作。