מדריך קלאודפלייר בעברית

תיעוד 206

פריסת יישום צ'אט בזמן אמת

עדכון אחרון: 29 בינואר 2026

במדריך הזה תפרסו יישום צ'אט בזמן אמת, ללא שרת, שרץ באמצעות Durable Objects.

יישום הצ'אט הזה משתמש ב-Durable Object כדי לשלוט בכל חדר צ'אט. משתמשים מתחברים ל-Object באמצעות WebSockets. הודעות ממשתמש אחד משודרות לכל שאר המשתמשים. היסטוריית הצ'אט נשמרת גם באחסון עמיד. הודעות בזמן אמת מועברות ישירות ממשתמש אחד לאחרים בלי לעבור דרך שכבת האחסון.

#לפני שמתחילים

כל המדריכים מניחים שכבר השלמתם את מדריך תחילת העבודה, שמגדיר לכם חשבון 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 > Triggers > Add Custom Domain.

כדי לפרוס את היישום לדומיין מותאם אישית באמצעות Wrangler, פתחו את קובץ התצורה של Wrangler בפרויקט.

כדי להגדיר route בקובץ התצורה של 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 שלכם > Triggers > Routes > בחרו את ה-route edge-chat-demo.<SUBDOMAIN>.workers.dev.
  3. הזינו שם בשדה your name.
  4. בחרו אם להיכנס לחדר ציבורי או ליצור חדר פרטי.
  5. שלחו את הקישור למשתתפים האחרים. תוכלו לראות את משתתפי החדר בצד ימין של המסך.

#הסרת היישום

כדי להסיר את יישום הצ'אט, ערכו את קובץ Wrangler כדי להסיר את ה-bindings של 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. ב-Overview, בחרו את ה-Worker.
  3. בחרו Manage Service > Delete. להוראות מלאות על הגדרה ומחיקה, עיינו ב-README.md במאגר ששכפלתם.

בסיום המדריך הזה פרסתם יישום צ'אט בזמן אמת עם Durable Objects ו-Cloudflare Workers.

#משאבים קשורים

המשיכו לבנות עם מדריכי Cloudflare Workers נוספים בהמשך.