跳转到内容
搜索文档

部署实时聊天应用

最后更新 查看 MarkdownAgent 设置

在本教程中,你将部署一个使用 Durable Objects 运行的无服务器实时聊天应用。

该聊天应用使用 Durable Object 来控制每个聊天室。用户通过 WebSocket 连接到该 Object。来自一位用户的消息会广播给所有其他用户。聊天记录也会存储在 durable storage 中。实时消息会直接从一位用户转发给其他用户,无需经过存储层。

开始之前

所有教程都假设你已经完成了快速入门指南,该指南帮助你设置 Cloudflare Workers 账户、C3Wrangler

克隆聊天应用仓库

打开终端并克隆 workers-chat-demo 仓库:

git clone https://github.com/cloudflare/workers-chat-demo.git

验证 Wrangler

克隆仓库后,运行以下命令验证 Wrangler:

npx wrangler login

部署项目

准备部署应用时,运行:

npx wrangler deploy

你的应用将部署到 *.workers.dev 子域名。

要在 Cloudflare 仪表板中将应用部署到自定义域名,请前往你的 Worker > Triggers(触发器) > Add Custom Domain(添加自定义域)

要使用 Wrangler 将应用部署到自定义域名,请打开项目的 Wrangler 配置文件

要在 Wrangler 配置文件中配置路由,请在环境中添加以下内容:

{
	"routes": [
		{
			"pattern": "example.com/about",
			"zone_id": "<YOUR_ZONE_ID>"
		}
	]
}
[[routes]]
pattern = "example.com/about"
zone_id = "<YOUR_ZONE_ID>"

如果你在 Wrangler 配置文件的环境变量中指定了 zone ID,则无需再以对象形式填写。

要在 Wrangler 配置文件中配置子域名,请在环境中添加以下内容:

{
	"routes": [
		{
			"pattern": "subdomain.example.com",
			"custom_domain": true
		}
	]
}
[[routes]]
pattern = "subdomain.example.com"
custom_domain = true

测试实时应用:

  1. 在 Cloudflare 仪表板中,前往 Workers & Pages 页面。

    Go to Workers & Pages ↗
  2. 选择你的 Worker > Triggers(触发器) > Routes(路由) > 选择 edge-chat-demo.<SUBDOMAIN>.workers.dev 路由。

  3. your name(你的姓名) 字段中输入名称。

  4. 选择进入公共房间或创建私人房间。

  5. 将链接发送给其他参与者。你可以在屏幕右侧查看房间参与者。

卸载应用

要卸载聊天应用,请修改 Wrangler 文件,移除 durable_objects 绑定,并添加 deleted_classes 迁移:

{
	"durable_objects": {
		"bindings": []
	},
	// Indicate that you want the ChatRoom and RateLimiter classes to be callable as Durable Objects.
	"migrations": [
		{
			"tag": "v1",
			"new_sqlite_classes": [
				"ChatRoom",
				"RateLimiter"
			]
		},
		{
			"tag": "v2", // Should be unique for each entry
			"deleted_classes": [
				"ChatRoom",
				"RateLimiter"
			]
		}
	]
}
[durable_objects]
bindings = [ ]

[[migrations]]
tag = "v1"
new_sqlite_classes = [ "ChatRoom", "RateLimiter" ]

[[migrations]]
tag = "v2"
deleted_classes = [ "ChatRoom", "RateLimiter" ]

然后运行 npx wrangler deploy

删除 Worker:

  1. 在 Cloudflare 仪表板中,前往 Workers & Pages 页面。

    Go to Workers & Pages ↗
  2. Overview(概览) 中,选择你的 Worker。

  3. 选择 Manage Service(管理服务) > Delete(删除)。有关完整设置和删除说明,请参阅克隆仓库中的 README.md

完成本教程后,你已使用 Durable Objects 和 Cloudflare Workers 部署了一个实时聊天应用。

相关资源

继续探索以下其他 Cloudflare Workers 教程。

这篇文档对您有帮助吗?