如何让Laravel Echo投入生产?

时间:2018-10-25 03:04:48

标签: laravel server laravel-echo namecheap pusher-js

我在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安装。我认为甚至没有安装节点。如何获得回声以进行生产?任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

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