提问人:user2947684 提问时间:10/4/2023 更新时间:11/19/2023 访问量:83
使用 Next.js 运行 websocket 服务器(hocuspocus 服务器)
Run a websocket server with Next.js (hocuspocus server)
问:
我正在尝试构建具有协作编辑功能的 Next.js 应用程序。
为此,我想使用 TipTap/HocusPocus。 我在 Next.js 中运行 Tiptap 没有问题,但为了运行 Hocuspus 服务器(基本上是一个 websocket 服务器),我需要运行 Node.js 服务器。
我不能将其作为 Next.js 项目本身的一部分运行,因为它是无服务器的。
从文档中,我可以看到这应该是运行 Hocuspocus 服务器所需的唯一代码。
import { Hocuspocus } from "@hocuspocus/server";
// Configure the server …
const server = new Hocuspocus({
port: 1234,
});
// … and run it!
server.listen();
它在本地运行良好,但由于上述原因,我无法让它在我的数字海洋环境中运行。
我看到了这些可能的解决方案:
- 以某种方式在 Next.js 项目中运行它
- 将其作为单独的项目运行,但它需要有一个静态 IP - 对吗?
对于这两种可能的解决方案,我都停留在如何真正让它发挥作用上。
答:
0赞
Izowow
11/19/2023
#1
我不能说为什么它对你不起作用,因为我不确定你是如何实现它的,但对于来到这里的其他人,我已经查看了一些关于websockets,Tiptap和Next.js的选项,我发现两个有效的解决方案是:
- 使用 Next.js自定义服务器运行 websocket 服务器:[https://nextjs.org/docs/pages/building-your-application/configuring/custom-server][1]
- 创建单独的 websocket 服务器
我选择了选项二,因为我的 Next.js 托管服务提供商是 Vercel,它不提供拥有 websockets 的能力,除非您正在使用他们宣传的 websocket 服务之一,该服务无论如何都在单独的服务器上运行。
评论