1

我正在尝试一些物联网的东西,我使用 USR-K2 接收数据并将它们发送到我处理它们的网站 api。网站托管在 Vercel 上。

问题是我无法真正读取生产数据。当我将数据发送到我的本地主机时,它可以正常工作。

我在目录“root/pages/api/”中有一个名为 readData.ts 的文件

import { NowRequest, NowResponse } from "@vercel/node";

export default (request: NowRequest, response: NowResponse) => {
  console.log("api called");
  const Data = request.body;

  console.log("data from api", Data);

  response.status(200).send(`Hello!`);
};

我还尝试根据 NextJS自定义服务器示例在目录“root/server”中配置 http 服务器。我的服务器索引如下所示:

import { createServer } from "http";
import next from "next";
import { buffer } from "micro";

const port = parseInt(process.env.PORT || "3000", 10);
const dev = process.env.NODE_ENV !== "production";
const app = next({ dev });

app.prepare().then(() => {
  createServer(async (req) => {
    
    const buf = await buffer(req);
    console.log(buf);
    
  }).listen(port);

  console.log(
    `> Server listening at http://localhost:${port} as ${
      dev ? "development" : process.env.NODE_ENV
    }`
  );
});

当我使用 nodemon 时,再次在 localhost 上一切正常。但是当我构建应用程序并尝试将数据发送到 Vercel 时,什么也没有发生。

USR-K2 设置的打印屏幕:USR-K2 设置

我还尝试将远程端口号设置为 3000。

以下是我的问题:

  1. 我应该设置什么端口来发送数据?
  2. Vercel 是否支持这种数据处理?
  3. 问题可能出在 K2 设置中吗?它的工作模式设置为Httpd客户端,应该是正确的(其他是UDP/TCP Client/Server)。我可以使用 URL 作为远程服务器地址吗?
  4. 还有其他想法如何在 Vercel 上运行它吗?或者我应该使用单独的服务器来处理请求和处理数据?

提前感谢您的回复。

4

0 回答 0