微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

我试图在通过套接字连接时从我的分子后端返回一些数据到我的反应前端。我在获取数据时遇到了挑战,让我特别困惑的是,当我在后端出现错误时,完整的错误会通过套接字返回到前端。但是当我解决错误时,我在前端得到的只是 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 举报,一经查实,本站将立刻删除。