Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在Laravel和VueJs中加载页面时通过web套接字发出客户端事件?_Javascript_Laravel_Vue.js_Websocket - Fatal编程技术网

Javascript 如何在Laravel和VueJs中加载页面时通过web套接字发出客户端事件?

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.

在上的文档之后,我成功地设置了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.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()
中,以稍微延迟它。它在
创建的
装载的
中都能很好地工作。