套接字连接成功后未在反应应用程序中获取数据

问题描述

我试图在通过套接字连接时从我的分子后端返回一些数据到我的反应前端。我在获取数据时遇到了挑战,让我特别困惑的是,当我在后端出现错误时,完整的错误会通过套接字返回到前端。但是当我解决错误时,我在前端得到的只是 null。我不清楚为什么我会在错误情况下收到响应,而在没有错误时收到 null 响应。任何帮助将不胜感激。

这是我在后端的代码。这个函数在 'auth.register' 的套接字请求进来时触发:

register(ctx) {
  const socketId = ctx.Meta.socket.id;
  console.log('socketId: ',socketId);

  const response = {
    status: 'success',code: null,message: 'Device registered with version 1.0.0.',body: { socketId },broadcast: false,messageId: 'unkNown',opts: {}
  }

  return response;
},

这是我的前端套接调用

io.socket.on('connect',() => {
  console.log("Connection with the socket gateway established on socket");
  // register
  io.socket.emit('call','auth.register',{
    key: config.key,version: `${config.app} ${config.version}`,app: config.app,},(res) => {
    console.log('res: ',res);
  });
});

这样的代码,前端控制台中的res就等于null

现在,如果我将后端代码更改为有错误,如下所示:

register(ctx) {
  const socketId = ctx.Meta.socket.id;
  console.log('socketId: ',socketId);

  response = {
    status: 'success',

通过套接字返回完整的错误,因此在前端控制台中,res 是这样的:

{name: "ReferenceError",message: "response is not defined"}

我试图理解为什么,如果后端出现错误,它会在前端的套接调用的回调中成功返回,但如果没有错误,我最终得到的是 { {1}}。

在这里错过了什么?这种情况如何将数据返回给前端?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)