[英]Socket.io emit event for only emitter
我有與socket.io的圖像發送算法,我決定添加“正在加載”消息,直到圖像加載完畢。
$("#output").append(
`<div id="loading-placeholder" style="opacity: 0"><div id="loading">${loadingSvg}</div></div>`
);
並且在加載圖像時刪除該div
但是問題是我在服務器端進行了圖像驗證
var ext = image.substring("data:image/".length, image.indexOf(";base64"));
console.log('extension ' + ext)
if(ext === 'jpeg' || ext === 'png' || ext === 'jpg'){
chnm.in(socket.current_room).emit('img', {image: data.image, id: socket.id});
}
else{
return false
}
如果圖像擴展名不是jpeg ||,則返回false png || jpg,在這種情況下,它會返回false,並且永遠不會加載圖片,因此加載的svg會永遠保留。 因此,如果服務器端驗證失敗,我想向用戶返回其圖像發送失敗的響應。 我怎樣才能做到這一點?
使用控制消息。 添加is_loaded
屬性。
chnm.in(socket.current_room).emit('img', {
image: data.image,
id: socket.id,
is_loaded: true
});
如果發生故障:
chnm.in(socket.current_room).emit('img', {
image: null,
id: null,
is_loaded: false
});
另一個可能的解決方案:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.