简体中文
Turms เป็นเครื่องมือส่งข้อความโต้ตอบแบบทันทีแบบโอเพ่นซอร์สที่ทันสมัยที่สุดสำหรับผู้ใช้พร้อมกัน 100,000-10 ล้านคนทั่วโลก โปรดดูเอกสารประกอบ Turms สำหรับรายละเอียด
(เวอร์ชันของเซิร์ฟเวอร์สาธิต: ghcr.io/turms-im/turms-admin:latest
, ghcr.io/turms-im/turms-gateway:latest
, ghcr.io/turms-im/turms-service:latest
)
ผู้ดูแลระบบ turms: http://playground.turms.im:6510
ทั้งบัญชีและรหัสผ่านคือ: guest
(บัญชีได้รับอนุญาตให้สืบค้นและเพิ่มข้อมูล แต่ไม่ได้รับอนุญาตให้อัปเดตและลบข้อมูล)
turms-gateway: http://playground.turms.im:10510 (พอร์ตสำหรับการเข้าถึง WebSocket) และ http://playground.turms.im:11510 (พอร์ตสำหรับการเข้าถึง TCP)
turms-service (Admin API ในสภาพแวดล้อม dev พร้อมรองรับข้อมูลปลอม): http://playground.turms.im:8510
โพร: http://playground.turms.im:9090; กราฟาน่า: http://playground.turms.im:3000
คุณสามารถใช้การใช้งาน turms-client-(java/js/swift) เพื่อส่งคำขอไปยัง turms-gateway และโต้ตอบกับผู้ใช้รายอื่นได้
นอกจากนี้ Playground จะได้รับการตั้งค่าโดยอัตโนมัติด้วยคำสั่งเดียว: ENV=dev,demo docker compose -f docker-compose.standalone.yml --profile monitoring up --force-recreate -d
เรียกใช้คำสั่งต่อไปนี้เพื่อตั้งค่าคลัสเตอร์ที่ทำงานขั้นต่ำ (รวมถึง turms-gateway, turms-service และ turms-admin) และเซิร์ฟเวอร์ที่ต้องพึ่งพา (คลัสเตอร์ MongoDB ที่แบ่งส่วนและ Redis) โดยอัตโนมัติ:
git clone --depth 1 https://github.com/turms-im/turms.git
cd turms
docker plugin install grafana/loki-docker-driver:latest --alias loki --grant-all-permissions
docker compose -f docker-compose.standalone.yml up --force-recreate
หลังจากตั้งค่าคลัสเตอร์แล้ว คุณสามารถไปที่ turms-admin ได้ที่ http://localhost:6510 และป้อนบัญชีและรหัสผ่าน ( turms
ตามค่าเริ่มต้น) หากคุณเข้าสู่ระบบสำเร็จ แสดงว่าคลัสเตอร์ของ Turms ได้รับการตั้งค่าเรียบร้อยแล้ว
คุณยังสามารถใช้โมดูล Terraform ที่ Turms จัดหาให้เพื่อซื้อบริการคลาวด์อย่างรวดเร็วและตั้งค่าคลัสเตอร์ turms (ใช้อินสแตนซ์สปอตตามค่าเริ่มต้น) หลังจากรัน terraform apply
ให้รอประมาณ 3~15 นาที (Alibaba Cloud ECS ดึงอิมเมจ ghcr ได้ช้า) จากนั้นไปที่ http://<public IP>:6510
หากคุณสามารถเข้าถึง turms-admin ได้ หมายความว่า ตั้งค่าคลัสเตอร์ turms สำเร็จแล้ว
(หมายเหตุ: คำสั่งต่อไปนี้จะซื้อบริการคลาวด์โดยอัตโนมัติและหักค่าธรรมเนียมที่เกี่ยวข้องจากบัญชีของคุณ)
git clone --depth 1 https://github.com/turms-im/turms.git
cd turms/terraform/alicloud/playground
export ALICLOUD_ACCESS_KEY= < your_access_key >
export ALICLOUD_SECRET_KEY= < your_secret_key >
terraform init
terraform apply
สถาปัตยกรรมของ Turms ขึ้นอยู่กับการออกแบบการอ่านแบบ fanout สำหรับการสร้างกล่องขาเข้า (หรือไทม์ไลน์ของข้อความ) และ Turms รองรับรูปแบบพุช โมเดลแบบดึง และโมเดลแบบพุชเพื่อรับทราบการเปลี่ยนแปลงของข้อมูลธุรกิจ (สำหรับรายละเอียด การรับรู้การเปลี่ยนแปลงข้อมูลธุรกิจ ). รายละเอียดการออกแบบอื่นๆ ส่วนใหญ่มาจากโครงการ IM เชิงพาณิชย์ด้วย
และเมื่อเทียบกับหลายโครงการที่มีกลุ่มเทคโนโลยีที่ล้าสมัย Turms ยังเป็นโซลูชัน IM แบบโอเพ่นซอร์สเพียงตัวเดียวที่ใช้สถาปัตยกรรมสมัยใหม่และเทคโนโลยีสมัยใหม่ และเหมาะสำหรับแอปพลิเคชันขนาดกลางถึงขนาดใหญ่
นอกจากนี้ การออกแบบสถาปัตยกรรมยังเป็นศิลปะแห่งการแลกเปลี่ยน ผลิตภัณฑ์ IM บางชนิดใช้คุณลักษณะที่หลากหลายเป็นสโลแกน โดยไม่มีการรองรับแอปพลิเคชันขนาดกลางถึงขนาดใหญ่ (เหมาะสำหรับการสื่อสารในทีมเท่านั้น) อย่างไรก็ตาม Turms ให้ความสำคัญกับประสิทธิภาพสูงสุดเป็นอันดับแรก และรองรับฟีเจอร์ IM ที่สมบูรณ์ (แทนที่จะสมบูรณ์) เพื่อรองรับแอปพลิเคชันขนาดกลางและขนาดใหญ่ โปรดดูการออกแบบ Turms Schema และความสามารถในการสังเกตสำหรับรายละเอียด
เมื่อคุณต้องการเปรียบเทียบ Turms กับโปรเจ็กต์ IM โอเพ่นซอร์สอื่นๆ สำหรับคุณสมบัติต่างๆ คุณสามารถเปรียบเทียบ Turms กับโปรเจ็กต์ IM โอเพ่นซอร์สอื่นๆ ได้ก่อนโดยยึดตามคุณสมบัติของ Turms ต่อไปนี้ โดยปกติแล้ว คุณจะพบความแตกต่างระหว่างโครงการ IM ระดับมืออาชีพและโครงการ IM สมัครเล่นได้ นอกจากนี้ ในบท Product Comparison
เรายังกล่าวถึงข้อบกพร่องของโครงการ Turms เพื่อเป็นข้อมูลอ้างอิงของคุณ
หมายเหตุ: ข้อเสียเปรียบหลักของโครงการ Turms ในปัจจุบันคือไม่สามารถรองรับห้องนั่งเล่น/ห้องสนทนาได้ การใช้งานทางเทคนิคของห้องนั่งเล่น/ห้องสนทนานั้นไม่ใช่เรื่องยาก แต่ข้อกำหนดของผลิตภัณฑ์ ข้อกำหนดคุณลักษณะด้านคุณภาพ และเงื่อนไขที่จำกัดค่อนข้างแตกต่างจากสถานการณ์ของแอปพลิเคชันโซเชียลทั่วไป ดังนั้น Turms เวอร์ชันแรกจึงไม่ให้การสนับสนุน นอกจากนี้ Turms ยังไม่เหมาะสำหรับสถานการณ์การสื่อสารในองค์กรขนาดเล็ก การใช้ Turms สำหรับสถานการณ์การสื่อสารระดับองค์กรคือการใช้ค้อนขนาดใหญ่เพื่อถอดรหัส เนื่องจากการสื่อสารระดับองค์กรเน้นไปที่ฟีเจอร์ที่หลากหลายมากกว่าประสิทธิภาพขั้นสุดยอด ซึ่งไม่สอดคล้องกับเป้าหมายของ Turms ดังนั้นการออกแบบจึงแตกต่างออกไป หากคุณต้องการสนับสนุนสถานการณ์การสื่อสารระดับองค์กร คุณต้องพัฒนาตาม Turms ด้วยตัวเอง
ระบบที่สังเกตได้ (โปรดดูที่การสังเกตเพื่อดูรายละเอียด)
บันทึก (สำหรับเหตุการณ์): Turms มีบันทึกสามประเภท: บันทึกการตรวจสอบ บันทึกธุรกิจ และบันทึกสถิติ
เมตริก (สำหรับข้อมูลที่รวบรวมได้) สะท้อนถึงสถานะเรียลไทม์ของระบบและข้อมูลธุรกิจ
การติดตาม
โปรดทราบว่าเซิร์ฟเวอร์ Turms จะให้คุณสมบัติการตรวจสอบเพิ่มเติมที่สามารถใช้งานได้อย่างมีประสิทธิภาพมากที่สุดเท่าที่จะเป็นไปได้ แต่จะไม่มีคุณสมบัติทั่วไปบางอย่างที่ส่งผลกระทบอย่างมากต่อประสิทธิภาพและเหมาะสมกับบริการของบุคคลที่สามมากกว่า (เช่น DAU) . สำหรับคุณสมบัติเพิ่มเติมประเภทนี้ คุณสามารถนำไปใช้โดยการวิเคราะห์บันทึกหรือตัววัดของเซิร์ฟเวอร์ Turms แบบออฟไลน์หรือแบบเรียลไทม์
ประสิทธิภาพขั้นสูงสุด เราพยายามจัดเก็บประสิทธิภาพขั้นสูงสุดในการใช้งานเวิร์กโฟลว์ทางธุรกิจทั้งหมดอยู่เสมอ โปรดดูซอร์สโค้ดสำหรับรายละเอียด
ชื่อ | สรุป |
---|---|
Turms-เกตเวย์ | เกตเวย์ (เซิร์ฟเวอร์พุช) โต้ตอบกับไคลเอนต์ และรับผิดชอบในการตรวจสอบผู้ใช้ การจัดการเซสชัน การแจ้งเตือนแบบพุช และการปรับสมดุลโหลดสำหรับเซิร์ฟเวอร์บริการ turms |
turms-บริการ | ใช้ตรรกะทางธุรกิจ IM และมอบการจัดการข้อมูลธุรกิจ RBAC และการจัดการคลัสเตอร์ให้กับผู้ดูแลระบบ |
turms-ผู้ดูแลระบบ | จัดเตรียมคุณสมบัติต่างๆ เช่น การจัดการข้อมูลธุรกิจและการจัดการคลัสเตอร์สำหรับคลัสเตอร์เซิร์ฟเวอร์ Turms |
turms-ไคลเอนต์-js | เปิดเผย API เพื่อโต้ตอบกับเซิร์ฟเวอร์ Turms เพื่อใช้คุณสมบัติ IM ตรรกะของไดรเวอร์พื้นฐาน (เช่น ฮาร์ทบีท) และการแชร์การเชื่อมต่อ WebSocket ระหว่างแท็บ คุณไม่จำเป็นต้องทราบถึงการใช้งานเนื่องจากมีความโปร่งใสสำหรับนักพัฒนา |
เปลี่ยนลูกค้า Kotlin | เปิดเผย API เพื่อโต้ตอบกับเซิร์ฟเวอร์ Turms เพื่อใช้คุณสมบัติ IM และตรรกะของไดรเวอร์พื้นฐาน (เช่น ฮาร์ทบีท) คุณไม่จำเป็นต้องทราบถึงการใช้งานเนื่องจากมีความโปร่งใสสำหรับนักพัฒนา |
เปลี่ยนลูกค้ารวดเร็ว | เหมือนกัน |
เปลี่ยนลูกค้าโผ | เหมือนกัน |
turms-ปลั๊กอิน | เมื่อเหตุการณ์ (เช่น ผู้ใช้ออนไลน์/ออฟไลน์ การรับและการส่งต่อข้อความ ฯลฯ) เริ่มทำงาน turms-gateway และ turms-service จะทริกเกอร์ปลั๊กอินที่กำหนดเองที่เกี่ยวข้อง เพื่ออำนวยความสะดวกให้นักพัฒนาใช้งานคุณสมบัติที่กำหนดเอง |
turms-ปลั๊กอิน-ป้องกันสแปม | ปลั๊กอินที่ใช้ปลั๊กอิน turms สำหรับการป้องกันสแปมโดยใช้หุ่นยนต์ Aho-Corasick พร้อมอาร์เรย์คู่ (ความซับซ้อนของเวลาในการตรวจจับคือ O (n) และ n คือความยาวของจุดรหัสสตริงเป้าหมาย) |
turms-ปลั๊กอิน-minio | ปลั๊กอินที่ใช้ turms-plugin สำหรับบริการจัดเก็บข้อมูล และใช้เพื่อโต้ตอบกับเซิร์ฟเวอร์ MiniIO |
turms-plugin-rasa | ปลั๊กอินที่ใช้ปลั๊กอิน turms สำหรับแชทบอต และใช้เพื่อโต้ตอบกับเซิร์ฟเวอร์ Rasa |
turms ข้อมูล (สิ่งที่ต้องทำ) | ยังไม่ได้เผยแพร่ ระบบวิเคราะห์ข้อมูลอิสระตามระบบนิเวศของ Flink มีหน้าที่รับผิดชอบในการวิเคราะห์ข้อมูลธุรกิจ และให้การสนับสนุนข้อมูลพื้นฐานสำหรับ API สถิติของ turms สำหรับผู้ดูแลระบบและรายงานการปฏิบัติงานของ turms-admin |
การออกแบบสถาปัตยกรรมของ Turms ได้มาจากสถาปัตยกรรมการส่งข้อความโต้ตอบแบบทันทีเชิงพาณิชย์ รูปต่อไปนี้แสดงสถาปัตยกรรมอ้างอิงของ Turms บริการที่ล้อมรอบด้วยเส้นประเป็นบริการเสริม ในขณะที่บริการที่ล้อมรอบด้วยเส้นทึบถือเป็นบริการที่จำเป็น โปรดดูการออกแบบสถาปัตยกรรม Turms สำหรับรายละเอียด
แม้ว่าจะมีโครงการ IM แบบโอเพ่นซอร์สมากมายในโลก แต่มีโครงการ IM แบบโอเพ่นซอร์สเพียงโครงการเดียวที่ออกแบบมาสำหรับสถานการณ์แอปพลิเคชัน IM ขนาดกลางและขนาดใหญ่: Turms
Rocket.แชท | คลาวด์ IM ที่มาแบบปิด | ทูมส์ | |
---|---|---|---|
สถานการณ์การใช้งาน | การสื่อสารเป็นทีม | สถานการณ์ IM ทั่วไป | สถานการณ์จำลอง IM ขนาดกลางถึงขนาดใหญ่ทั่วไป (ทำให้ Turms เป็นไปได้สำหรับการพัฒนาขื้นใหม่) (หมายเหตุ: Turms เวอร์ชันแรกไม่รองรับห้องนั่งเล่น/ห้องสนทนา) |
ข้อดี | 1. ให้บริการคลาวด์เพียงคลิกเมาส์เพื่อเริ่มคลัสเตอร์และให้บริการ 2. การใช้งานไคลเอนต์เป็นแบบข้ามแพลตฟอร์มและใช้งานได้ทันทีสำหรับผู้ใช้ 3. รองรับชุด UI ที่สมบูรณ์และเป็นหนึ่งเดียว 4. รองรับคุณสมบัติการส่งข้อความโต้ตอบแบบทันทีขั้นสูง เช่น การประชุมด้วยเสียงและวิดีโอ การแชร์ไฟล์ การแชร์หน้าจอ 5. ให้การสนับสนุนทางเทคนิคแก่ผู้ใช้เชิงพาณิชย์ | 1. ให้บริการคลาวด์เพียงคลิกเมาส์เพื่อเริ่มคลัสเตอร์และให้บริการ 2. การใช้งานไคลเอนต์เป็นแบบข้ามแพลตฟอร์มและใช้งานได้ทันทีสำหรับผู้ใช้ 3. รองรับชุด UI ที่สมบูรณ์และเป็นหนึ่งเดียว 4. รองรับคุณสมบัติการส่งข้อความโต้ตอบแบบทันทีขั้นสูง เช่น การประชุมด้วยเสียงและวิดีโอ การแชร์ไฟล์ การแชร์หน้าจอ 5. ให้การสนับสนุนทางเทคนิคแก่ผู้ใช้เชิงพาณิชย์ | ข้อดีคือคุณสมบัติที่อธิบายไว้ข้างต้น |
ข้อเสีย | 1. เหมาะสำหรับการใช้งานขนาดเล็กเท่านั้น 2. สถานการณ์การใช้งานที่แคบและปรับแต่งได้ยาก | 1. เป็นระบบปิดและไม่สามารถปรับแต่งได้ ทุกโครงการย่อมมีข้อกำหนดทางธุรกิจใหม่หลังจากการเติบโตของธุรกิจซึ่งจำเป็นต้องปรับแต่ง อย่างไรก็ตาม IM cloud ไม่ได้ให้บริการที่ปรับแต่งเองหรือต้องการค่าธรรมเนียมการปรับแต่งที่สูง และอาจเข้าใจผิดความต้องการของคุณ ส่งผลให้มีฟีเจอร์ที่ปรับแต่งได้ซึ่งไม่สามารถตอบสนองความต้องการทางธุรกิจของคุณได้อย่างดี จะต้องอาศัยความร่วมมือระยะยาวจึงจะทำงานได้ดีกับพวกเขา แต่ตาม Turms ความต้องการของคุณสามารถนำมาใช้และจัดหาได้อย่างรวดเร็ว และมีต้นทุนที่ต่ำ หมายเหตุ: สำหรับรายละเอียดความซับซ้อนของ IM คุณสามารถดูการออกแบบสคีมาได้ 2. ความเป็นส่วนตัวของข้อมูล ข้อมูลผู้ใช้และข้อมูลข้อความทั้งหมดของคุณจะถูกจัดเก็บไว้ในคลาวด์ IM ซึ่งสามารถแอบดูและใช้ข้อมูลของคุณได้ โดยเฉพาะอย่างยิ่งสำหรับบริษัท IM ขนาดเล็กบางแห่ง ความปลอดภัยของข้อมูลไม่ได้รับการรับประกันเลย และคุณยังต้องแบกรับความเสี่ยงที่ข้อมูลสูญหายที่ไม่สามารถกู้คืนได้อีกด้วย 3. ยิ่งคุณใช้ IM cloud มากเท่าไหร่ ยิ่งพึ่งพามันมากเท่าไรก็ยิ่งมีราคาแพงมากขึ้นเท่านั้น คลาวด์ IM ส่วนใหญ่จะมีโควต้าฟรีหรือช่วงทดลองใช้งาน แต่หลังจากที่ขนาดผู้ใช้ของผลิตภัณฑ์ของคุณเพิ่มขึ้น คุณจะต้องจ่ายค่าธรรมเนียมการใช้งานที่สูงหรือละทิ้งการใช้งานเพื่อเริ่มพัฒนาเซิร์ฟเวอร์ IM ของคุณเอง 4. การสนับสนุนด้านเทคนิคไม่ตรงเวลา IM cloud จำเป็นต้องให้การสนับสนุนทางเทคนิคแก่ลูกค้าจำนวนมากในเวลาเดียวกัน และการสนับสนุนสำหรับผลิตภัณฑ์ของคุณอาจล้าหลัง | 1. ตอบสนองความต้องการการส่งข้อความโต้ตอบแบบทันทีทั่วไปเท่านั้น และไม่มีคุณสมบัติขั้นสูงบางอย่าง (เช่น ไม่รองรับการประชุมทางเสียงและวิดีโอ) 2. Turms เวอร์ชันแรกไม่รองรับห้องนั่งเล่น/ห้องสนทนา 3. เซิร์ฟเวอร์ Turms ให้ข้อมูลดิบของตัวชี้วัด/บันทึกเท่านั้น และไม่มีฟังก์ชันต่างๆ เช่น การวิเคราะห์และการเตือน 4. turms-admin การบริหารระบบบนเว็บไม่มีคุณสมบัติการทำงานขั้นสูงในปัจจุบัน5. ไม่มีการรองรับตรรกะทางธุรกิจและ UI ที่เฉพาะเจาะจง 6. เซิร์ฟเวอร์มีปฏิกิริยา ซึ่งถือเป็นความท้าทายสำหรับนักพัฒนาบางคน |
ความคิดเห็น | ขอแนะนำเป็นอย่างยิ่งให้ใช้ Rocket.Chat เพื่อการสื่อสารในทีม | หากสถานการณ์ทางธุรกิจ IM ในผลิตภัณฑ์ของคุณเป็นเรื่องปกติมาก และไม่มีข้อกำหนดที่กำหนดเอง และธุรกิจ IM ไม่ใช่ธุรกิจหลักของผลิตภัณฑ์ของคุณ ขอแนะนำให้ใช้ IM cloud แต่หากไม่มีข้อกำหนดพิเศษ พยายามอย่าใช้ IM cloud ที่ให้บริการโดยบริษัทขนาดเล็ก ไม่เช่นนั้นจะไม่รับประกันความปลอดภัยของข้อมูลของคุณ | แม้ว่าทั้งสองจะเป็นโครงการ IM แบบโอเพ่นซอร์ส แต่ก็มีสถานการณ์การใช้งานที่แตกต่างกันโดยสิ้นเชิง Turms เป็นเครื่องมือส่งข้อความโต้ตอบแบบทันทีทั่วไปสำหรับแอปพลิเคชันส่งข้อความโต้ตอบแบบทันทีขนาดกลางถึงขนาดใหญ่ คุณไม่สามารถส่งมอบ Turms ให้กับลูกค้าของคุณได้ (เช่นเดียวกับที่ผลิตภัณฑ์ส่วนใหญ่ไม่อนุญาตให้ลูกค้าเขียนคำสั่ง SQL เพื่อสืบค้นข้อมูลธุรกิจในฐานข้อมูล) อย่างไรก็ตาม จากการใช้ Turms คุณสามารถปรับใช้โปรเจ็กต์ข้อความโต้ตอบแบบทันทีแบบโอเพนซอร์สทั้งหมดบน GitHub ได้อย่างมีประสิทธิภาพ ครอบคลุม และกว้างขวางยิ่งขึ้น |
เมื่อพิจารณาถึงตำแหน่งของ Turms เราไม่ได้วางแผนที่จะจัดเตรียมการสาธิตให้กับลูกค้าด้วย UI และตรรกะทางธุรกิจที่เฉพาะเจาะจงในอนาคตอันใกล้นี้ เนื่องจาก
เป็นเรื่องง่ายสำหรับนักพัฒนาในการตรวจสอบคุณสมบัติทางธุรกิจที่ Turms รองรับ หากคุณเพียงต้องการทดสอบคุณสมบัติทางธุรกิจของ Turms คุณสามารถเรียกใช้เซิร์ฟเวอร์ Turms ได้โดยไม่ต้องพิมพ์โค้ดแม้แต่บรรทัดเดียว โค้ดเพียงสิบบรรทัดเท่านั้นที่สามารถรับรู้การเข้าสู่ระบบ การส่งข้อความ การส่งคำขอของเพื่อน และคุณสมบัติทางธุรกิจอื่น ๆ หรือแก้ไขคุณสมบัติเพื่อปรับแต่งข้อกำหนดต่างๆ
การออกแบบและการใช้งานการสาธิตมีความสัมพันธ์อย่างใกล้ชิดกับสถานการณ์ทางธุรกิจเฉพาะ ภาษาการเขียนโปรแกรมเฉพาะ สถาปัตยกรรมทางเทคนิคเฉพาะ และระบบปฏิบัติการเฉพาะ ในขณะที่ Turms มุ่งมั่นที่จะตอบสนองสถานการณ์การส่งข้อความโต้ตอบแบบทันทีที่ซับซ้อนและท้าทายต่างๆ ได้อย่างมีประสิทธิภาพ และเราไม่ต้องการ เผยแพร่การสาธิตที่จำกัดจินตนาการของนักพัฒนา นอกจากนี้การพัฒนาและบำรุงรักษาการสาธิตยังใช้เวลานานมากและจะทำให้ความคืบหน้าของการพัฒนา Turms ช้าลง
ในปัจจุบัน คุณเพียงแค่ต้อง "แชท" กับ GPT-3.5 และ GPT-4 เพื่อรับโซลูชันทางเทคนิคที่กำหนดเองและการออกแบบ UI นำข้อความเป็นตัวอย่างอินพุต (นอกจากนี้ GPT-4 ยังรองรับอินพุตรูปภาพ และคุณยังสามารถวาดโครงร่าง UI เพื่อแนะนำวิธีการออกแบบ UI ได้ด้วย)
โปรดใช้หน้าต่างแชทการบริการลูกค้าที่ทำงานบนเว็บเอนด์โดยใช้ Vue3, Vite, Eslint และเทคโนโลยีอื่น ๆ ข้อกำหนดเฉพาะ
- สไตล์การออกแบบ UI ต้องอ้างอิงถึง: Ant Design
- หน้าต่างแชทควรแบ่งออกเป็นสามส่วน: ที่ด้านบนสุดควรแสดงชื่อบริการลูกค้า; ตรงกลางควรแสดงข้อความแชทระหว่างผู้ใช้กับฝ่ายบริการลูกค้า และด้านล่างควรมีช่องป้อนข้อความและปุ่มส่งเพื่อให้ผู้ใช้สามารถป้อนข้อความและส่งข้อความได้
- หน้าต่างแชทควรแสดงที่มุมขวาบนของหน้าเสมอ
- คุณต้องถือว่าหน้าต่างแชทนั้นใช้โปรโตคอล WebSocket เพื่อสื่อสารกับเซิร์ฟเวอร์แบ็คเอนด์เพื่อเข้าสู่ระบบ ส่งข้อความ รับข้อความ ฯลฯ
- คุณต้องกำหนดโครงสร้างโปรเจ็กต์และการใช้งานโค้ดเฉพาะทั้งหมดในโปรเจ็กต์ตามโซลูชันการออกแบบที่เป็นส่วนประกอบของ UI
GPT สามารถจัดเตรียมการติดตั้งโค้ดที่เกี่ยวข้องได้ทันที และคุณสามารถ "สนทนา" กับโค้ดนั้นต่อไปตามสถานการณ์ต่างๆ ได้ (คุณสามารถให้ GPT จัดเตรียมและเปรียบเทียบหลายสถานการณ์ได้) เพื่อปรับแต่งการออกแบบ UI และการติดตั้งโค้ดเพื่อให้การติดตั้งใช้งานขั้นสุดท้ายสิ้นสุดลง ตามความคิดของคุณ
โครงการ Turms ได้รับใบอนุญาตภายใต้ใบอนุญาต Apache License 2.0
ดังนั้นเราจึงไม่สนใจว่าผู้ใช้วางแผนที่จะทำกำไรจากโครงการ Turms หรือไม่ เราต้องการให้ผู้ใช้ปฏิบัติตามใบอนุญาต Apache License 2.0
ในงานของคุณ เช่น เอกสาร วิดีโอ รหัส ฯลฯ เพื่อกล่าวถึงข้อมูลของโครงการ Turms เช่น:
Original Project Name:turms-im/turms
Original Project:https://github.com/turms-im/turms
Original Project Documentation:https://turms-im.github.io/docs
โครงการ Turms ทำกำไรได้อย่างไร?
เราไม่จำเป็นต้องทำกำไรในปัจจุบัน แน่นอนว่าเราไม่ตัดกำไร แต่เราจะไม่จงใจเขียนเอกสารที่ไม่ดีหรือทำงานที่ไม่ดีเพื่อหารายได้ให้คำปรึกษา การฝึกอบรม และค่าใช้จ่ายอื่นๆ อีกสิ่งหนึ่งที่ต้องพูดถึงคือมีโครงการโอเพ่นซอร์ส (ปิด) จำนวนมากที่ได้รับค่าธรรมเนียมการสนับสนุนการบริการโดยจงใจเขียนเอกสารที่ไม่ดีและทำงานที่ไม่ดี
หากองค์กรที่ทำกำไร เช่น สถาบันฝึกอบรมหรือบริษัท อ้างอิงเอกสารของ Turms หรือแม้แต่ขายโครงการของ Turms เป็นบริการ SaaS องค์กรที่ทำกำไรเหล่านี้จำเป็นต้องให้ความสนใจกับสิ่งใดหรือไม่
เราไม่สนใจว่าทีมของคุณวางแผนที่จะทำกำไรจากโครงการ Turms หรือไม่ ทีมของคุณจะต้องปฏิบัติตามใบอนุญาต Apache License 2.0
และกล่าวถึงข้อมูลโครงการ Turms ตามที่กล่าวไว้ข้างต้น
โปรเจ็กต์ Turms เหมาะสำหรับการให้บริการ SaaS แล้วเหตุใดโปรเจ็กต์ Turms จึงไม่รับใบอนุญาต AGPL หรือ SSPL
ขณะนี้เราไม่จำเป็นต้องทำกำไร และเราไม่ได้วางแผนที่จะทำกำไร เรากำหนดให้ผู้ใช้ปฏิบัติตามใบอนุญาต Apache License 2.0
เท่านั้น
หากโครงการ Turms ไม่ทำกำไร คุณภาพของโครงการจะเป็นอย่างไร?
เอกสารประกอบและซอร์สโค้ดของเราได้ตอบคำถามนี้ให้เราแล้ว และในชุมชนโอเพ่นซอร์ส ไม่มีโปรเจ็กต์ IM แบบโอเพ่นซอร์สที่สามารถแข่งขันกับโปรเจ็กต์ Turms ในสถานการณ์แอปพลิเคชัน IM ขนาดกลางและขนาดใหญ่ได้ อีกสิ่งหนึ่งที่ต้องพูดถึงคือโครงการเชิงพาณิชย์ไม่ได้หมายความว่ามีคุณภาพสูง และแม้แต่คุณภาพของเอกสารและโค้ดสำหรับโครงการเชิงพาณิชย์จำนวนมากก็เป็นเรื่องที่น่าตกใจ
Turms ใช้ข้อตกลงใบอนุญาตแบบคู่หรือมีค่าใช้จ่ายแอบแฝงหรือไม่
ไม่ บางโปรเจ็กต์นั้นฟรีสำหรับการใช้งานส่วนตัวและเรียกเก็บเงินสำหรับการใช้งานเชิงพาณิชย์ โดยใช้ข้อตกลงสิทธิ์การใช้งานแบบคู่ หรือมีค่าใช้จ่ายแอบแฝงจำนวนมาก โครงการ Turms ได้รับใบอนุญาตภายใต้ใบอนุญาต Apache License 2.0
และไม่มีค่าใช้จ่าย บางโครงการอ้างว่าเป็นซอฟต์แวร์โอเพ่นซอร์ส แต่ไม่ใช่ สำหรับรายละเอียด โปรดดูที่คำจำกัดความของโอเพ่นซอร์ส
ส่วนใหญ่พัฒนาใน IntelliJ IDEA และ CLion
ใบอนุญาตกรุณาให้โดยทีมสนับสนุนชุมชน JetBrains