我在Laravel Echo方面遇到麻烦(我认为)。我建立了一个在本地工作的vue聊天应用程序。 我什至已经将其克隆到另一台计算机上,并且可以正常工作。但是,当我将其投入生产时,它就无法正常工作。 我没有在服务器上运行npm,我只是在提交并推送到服务器之前执行了run npm prod。 由于某种原因,它只是不起作用。我在调试控制台中看到了这些消息,这些消息正在传递到pusher。
下面是一些代码:
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.logs,但是在生产时,我只会得到一个console.logs,这是因为在消息聊天窗口中按回车会调用saveMessage。我是否需要在服务器上安装某些东西才能使echo工作,因为我没有在服务器上进行npm安装。我认为甚至没有安装节点。如何获得回声以进行生产?任何帮助将不胜感激!
答案 0 :(得分:0)
您是否已在生产环境中启动echo服务器?