如何让Laravel Echo参与生产?
我觉得拉威尔·埃科有问题。我构建了一个在本地运行的vue聊天应用程序。 我甚至把它克隆到另一台机器上,使它工作正常。但当我把它投入生产时,它就不起作用了。 我没有在服务器上运行npm,我只是在提交并推送到服务器之前运行npm产品。 但由于某种原因,它就是不起作用。正如我在调试控制台中看到的那样,这些消息正在传递给pusher 下面是一些代码:如何让Laravel Echo参与生产?,laravel,server,laravel-echo,namecheap,pusher-js,Laravel,Server,Laravel Echo,Namecheap,Pusher Js,我觉得拉威尔·埃科有问题。我构建了一个在本地运行的vue聊天应用程序。 我甚至把它克隆到另一台机器上,使它工作正常。但当我把它投入生产时,它就不起作用了。 我没有在服务器上运行npm,我只是在提交并推送到服务器之前运行npm产品。 但由于某种原因,它就是不起作用。正如我在调试控制台中看到的那样,这些消息正在传递给pusher 下面是一些代码: mounted() { console.log('mounted'); Echo.private(`messages.${this.u
mounted() {
console.log('mounted');
Echo.private(`messages.${this.user.id}`)
.listen('NewMessage', (e) => {
console.log('in echo');
this.hanleIncoming(e.message);
});
axios.get('/contacts')
.then((response) => {
this.contacts = response.data;
});
},
methods: {
startConversationWith(contact) {
this.updateUnreadCount(contact, true);
axios.get(`/conversation/${contact.id}`)
.then((response) => {
this.messages = response.data;
this.selectedContact = contact;
})
},
saveNewMessage(message) {
console.log(message);
this.messages.push(message);
},
hanleIncoming(message) {
if (this.selectedContact && message.from == this.selectedContact.id) {
console.log('inside if of handleincoming');
this.saveNewMessage(message);
return;
}
this.updateUnreadCount(message.from_contact, false);
}
}
当本地时,我得到所有的console.log,但在prod上我只得到一个,这是因为在消息聊天窗口中按enter键时会调用saveMessage。由于我没有在服务器上安装npm,我是否需要在服务器上安装一些东西才能让echo正常工作。我认为甚至没有安装node。我怎样才能让echo从事生产工作?任何帮助都将不胜感激 您在生产环境中启动了echo server吗?我认为关键是我应该能够使用npm在本地运行生产构建,然后它就可以工作了。你是说我必须运行一个echo服务器才能工作?你需要运行一个兼容的Socket.IO服务器。Laravel不包括Socket.IO服务器实现;但是,社区驱动的Socket.IO服务器当前维护在GitHub存储库中。我在问题中指出,我正在使用pusher,消息将到达调试控制台。从文档中的外观来看,composer需要pusher/pusher php服务器“~3.0”,而不是将echo服务器与socketYou配合使用?面对同样的问题,让我知道,如果你让它工作。