2

我在使用 Laravel Echo 时遇到了问题(我认为)。我已经构建了一个可以在本地运行的 vue 聊天应用程序。我什至将它克隆到另一台机器上并让它正常工作。但是当我将它投入生产时,它不起作用。我没有在服务器上运行 npm,我只是在提交和推送到服务器之前运行 npm prod。出于某种原因,它只是不起作用。正如我在调试控制台中看到的那样,消息正在传递到推送器。

这是一些代码:

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,但在 prod 上我只得到一个,这是因为 saveMessage 在从消息聊天窗口中按回车时被调用。我是否需要在服务器上安装一些东西才能让 echo 工作,因为我没有在服务器上执行 npm install 。我认为甚至没有安装节点。如何让 echo 用于生产?任何帮助,将不胜感激!

4

1 回答 1

0

您是否在生产环境中启动了 echo 服务器?

于 2018-10-25T07:49:30.720 回答