【发布时间】:2021-03-19 01:14:37
【问题描述】:
我有一个消息系统的简单实现或尝试,只是为了向不同用户显示消息警报。我正在使用https://www.npmjs.com/package/vue-socket.io Vue Socket Io,但它只是一个 socket.io。我正在尝试让客户端订阅已安装的事件。该名称基于他们的用户 ID。问题是我下面的实现无法显示警报。我可以看到挂载中订阅的事件,我可以看到在服务器中发送消息控制台日志,所以我知道它正在被触发,但我没有看到 emit(Chat_.... alert /p>
服务器:
io.on('connection', function(socket) {
socket.on('sendMessage', function (data) {
console.log("Sending message to" + data.user);
socket.emit(`CHAT_${data.user}`, data.msg)
});
});
客户:
在客户端,userIDSelf 是作为道具传入的用户 ID。这是用户的登录 ID,在 mounted 中,他们会自动订阅附加用户 ID 的聊天频道,就像自定义频道一样。
mounted() {
this.sockets.subscribe(`CHAT_${this.userIDSelf}`, (data) => {
alert(data)
});
},
有一个函数sendMessage 从模板中的 2 个输入(未看到)中获取值。您必须输入要将消息发送给谁的用户 ID,然后输入实际消息的另一个输入。这些被发送到上面列出的后端服务器。
methods: {
sendMessage() {
this.$socket.emit('sendMessage', {user: this.userIDReceiver, msg: this.message})
},
}
【问题讨论】:
标签: javascript vue.js vuejs2 socket.io