我正在尝试一些物联网的东西,我使用 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。
以下是我的问题:
- 我应该设置什么端口来发送数据?
- Vercel 是否支持这种数据处理?
- 问题可能出在 K2 设置中吗?它的工作模式设置为Httpd客户端,应该是正确的(其他是UDP/TCP Client/Server)。我可以使用 URL 作为远程服务器地址吗?
- 还有其他想法如何在 Vercel 上运行它吗?或者我应该使用单独的服务器来处理请求和处理数据?
提前感谢您的回复。