回调之外保存数据"/>
在 socket.io 的回调之外保存数据
我想做的只是
client1 =(1)=> server =(2)=> otherclient =(3)=> server =(4)=> client1
但是数据不能传入 =(4)=> 返回给请求者
服务器(node.js socket.io) `
var data1 = "";
socket.on("getdata", async(postid,cb)=>{ //==(1)==> //cb to client1 =(4)=>
socket.broadcast.emit("sendreq",postid) //==(2)==>
socket.on("callbacksendreq", (data)=>{ //==(3)==>
//==(4)==> [option 1]//send to otherclient instead of client 1
io.to(socket.id).emit("callbackgetdata", data) //socket.id is not client1
//==(4)==> [option 2]//cb() not defined
cb(data)//this function is from socket.on("getdata") but it doesnt work within another on
data1 = data // data1 only change internally
})
cb(data1) //==(4)==>[option 3] but it return "" instead of data
//even though global scope, the data1 remain the same
})
` 客户端//浏览器脚本(来自cdn的socket.io客户端)
socket.on("connect",()=>{
socket.emit("getdata", postid,(cbdata)=>{ //==(4)==>[option3][option2]
Display(data);
})
})
socket.on("callbackgetdata", (data)=>{ //==(4)==> [option2]
Display(data);
})
//other client ask for comment //otherclient
socket.on("sendreq",async(postid)=>{
socket.emit("callbacksendreq", localStorage.getItem(postid) )
})
我希望从其他客户端发送请求并获取 localStorage.getItem(postid) 作为回调并显示在 HTML 上
回答如下:更多推荐
在 socket.io 的回调之外保存数据
发布评论