uni-app 服务端推送消息成功后,没有返回信息

发布于 1周前 作者 yibo5220 来自 Uni-App

uni-app 服务端推送消息成功后,没有返回信息

当前在使用云函数URL化的方式进行消息推送时,发现了一个问题:(如图)

当消息推送成功时,后端服务并未返回任何内容,而按照预期,此时应当返回一个表示推送任务标识的ID。

但是,如果消息推送失败,则能够正常接收到错误反馈信息。

用测试工具postman也是同样问题。

期望推送成功后返回推送任务id,便于追踪推送消息可达。

图片

图片


1 回复

在uni-app中处理服务端推送消息时,通常我们需要确保服务端能够正确响应推送结果,并在必要时返回相关信息给客户端。如果服务端推送消息成功后没有返回信息,可能是由于服务端代码没有正确设置响应,或者是客户端没有正确处理响应。以下是一个简单的示例,展示如何在uni-app中实现服务端推送消息并返回响应信息。

服务端代码(以Node.js为例)

首先,我们假设你使用的是Node.js作为服务端,并且使用了expressbody-parser来处理HTTP请求。以下是一个简单的服务端代码示例:

const express = require('express');
const bodyParser = require('body-parser');
const app = express();
const port = 3000;

app.use(bodyParser.json());

app.post('/push-message', (req, res) => {
  const { message } = req.body;

  // 假设这里有一个函数用于推送消息到客户端
  // pushMessageToClient(message);

  // 模拟推送成功
  console.log(`Message sent: ${message}`);

  // 返回响应信息
  res.json({
    status: 'success',
    message: 'Message pushed successfully'
  });
});

app.listen(port, () => {
  console.log(`Server is running on http://localhost:${port}`);
});

客户端代码(uni-app)

在uni-app中,你可以使用uni.request来发送HTTP请求到服务端。以下是一个简单的客户端代码示例:

uni.request({
  url: 'http://localhost:3000/push-message',
  method: 'POST',
  data: {
    message: 'Hello, this is a test message!'
  },
  success: (res) => {
    if (res.statusCode === 200) {
      const data = res.data;
      if (data.status === 'success') {
        uni.showToast({
          title: data.message,
          icon: 'success'
        });
      } else {
        uni.showToast({
          title: 'Failed to push message',
          icon: 'none'
        });
      }
    } else {
      uni.showToast({
        title: 'Server error',
        icon: 'none'
      });
    }
  },
  fail: (err) => {
    uni.showToast({
      title: 'Request failed',
      icon: 'none'
    });
    console.error(err);
  }
});

在这个示例中,客户端发送一个POST请求到服务端的/push-message接口,并等待服务端的响应。如果服务端推送消息成功,它会返回一个包含statusmessage的JSON对象。客户端根据这个响应信息来显示相应的提示。

通过这种方式,你可以确保服务端在推送消息成功后能够返回相关信息给客户端。

回到顶部