当使用者离开当前频道时,其他使用者的页面需要监听到离线的状况,并同时关闭那位离开者的频道。
在监听连线的同时,若触发断线的 socket,则将离开的使用者 ID,做为资料传给 handler.js。
// server.js
socket.on('disconnect', () => {
// ...
const data = {
socketIdOfDisconnectPeer: socket.id,
};
io.emit('peer-disconnected', data);
});
中介层和 server-side,两边都透过 peer-disconnected
来沟通传输,另外,将离线的使用者 ID,传给 client-side
// handler.js
socket.on('peer-disconnected', (data) => {
ui.removeChatOfDisconnected(data);
});
client-side 依据传过来的离线的使用者 ID,移除对应的 DOM,同时也针对 store 中保存的状态进行更新,确保目前聊天频道中的使用者是最新的状态。
// ui.js
const removeChatOfDisconnected = (data) => {
const { socketIdOfDisconnectPeer } = data;
const activeChatGroup = store.getActiveChatGroup(socketIdOfDisconnectPeer);
const newActiveChatGroup = activeChatGroup.filter(
(node) => node.socketId !== socketIdOfDisconnectPeer
);
store.setActiveChatGroup(newActiveChatGroup);
const chatBox = document.getElementById(socketIdOfDisconnectPeer);
if (chatBox) {
chatBox.parentElement.removeChild(chatBox);
}
};
export default {
// ...
removeChatOfDisconnected,
};
前言: 再来就是建立和训练模型 程序码: 方案一 model = tf.keras.Sequenti...
因为实在有太多东西想分享了,但已经 29 天了 我们先来个 iOS 打包步骤 完成开发後再来就是要...
虚设常式(Stub)简介 今天的文章进入了新的系列,那因为接下来的概念是非常抽象的,所以会介绍数个核...
昨天的内容还可以吸收吗? 也许有人会问: 这些神经网路模型还有GPU、CUDA什麽的我都不懂,能不能...
今天我们继续学习watch os的开发。 正文 上面所展示的是按下Button之後会将下面的Text...