INTEGRITY Документация

Развертывание чат-приложения в реальном времени

В этом руководстве вы развернёте бессерверное приложение чата в реальном времени, работающее на Durable Objects.

Это чат-приложение использует Durable Object для управления каждой комнатой чата. Пользователи подключаются к объекту через WebSocket. Сообщения одного пользователя рассылаются всем остальным пользователям. История чата также сохраняется в устойчивом хранилище. Сообщения в реальном времени передаются напрямую от одного пользователя другим, минуя уровень хранения.

Прежде чем начать

Во всех руководствах предполагается, что вы уже выполнили Руководство по началу работы, который поможет вам настроить аккаунт Cloudflare Workers, C3, а также Wrangler.

Клонируйте репозиторий приложения для чата

Откройте терминал и клонируйте 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 > Триггеры > Добавление пользовательского домена.

Чтобы развернуть приложение на пользовательском домене с помощью Wrangler, откройте конфигурационный файл Wrangler.

Чтобы настроить маршрут в файле конфигурации Wrangler, добавьте следующее в окружение:

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

Если вы указали идентификатор зоны в окружении конфигурационного файла Wrangler, повторно записывать его в виде объекта не нужно.

Чтобы настроить поддомен в файле конфигурации Wrangler, добавьте следующее в окружение:

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

Чтобы протестировать работающее приложение:

  1. На панели управления Cloudflare перейдите к разделу Workers & Pages страницу.

    Перейдите в Workers & Pages ↗
  2. Выберите Worker > Триггеры > Маршруты > Выберите edge-chat-demo.<SUBDOMAIN>.workers.dev маршрут.

  3. Введите имя в ваше имя поле.

  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 страницу.

    Перейдите в Workers & Pages ↗
  2. В Обзор, выберите ваш Worker.

  3. Выберите Управление сервисом > Удалить. Полную инструкцию по настройке и удалению см. в README.md в склонированном вами репозитории.

Пройдя это руководство, вы развернули чат-приложение в реальном времени на Durable Objects и Cloudflare Workers.

Продолжите знакомство с другими руководствами по Cloudflare Workers ниже.