goch เป็นเซิร์ฟเวอร์แชทสดที่โฮสต์เองซึ่งเขียนด้วยภาษา Go
ช่วยให้คุณสามารถเรียกใช้ซอฟต์แวร์แชทสดบนโครงสร้างพื้นฐานของคุณเองได้
คุณสามารถสร้างห้องสนทนาส่วนตัวและสาธารณะได้หลายห้อง โดยสามารถมีผู้ใช้สองคนขึ้นไปพร้อมกันได้
สำหรับการสื่อสาร จะใช้ตำแหน่งข้อมูล RESTful, Websockets, NATS Streaming และ Redis
goch เป็นทางแยกของ Gossip พร้อมฟีเจอร์และการแก้ไขเพิ่มเติมมากมาย
หากต้องการรัน goch ในเครื่อง คุณต้องมี docker
, docker-compose
และ go
ติดตั้งและตั้งค่าบนเส้นทางของคุณ หลังจากดาวน์โหลด/โคลนโปรเจ็กต์แล้ว ให้รัน ./up
ซึ่งคอมไพล์ไบนารี่และรัน docker-compose ด้วย goch , NATS Streaming และ Redis หากไม่มีข้อผิดพลาด goch ควรทำงานบน localhost (พอร์ต 8080)
เพื่อให้เซิร์ฟเวอร์ทำงานได้ จะต้องตั้งค่าตัวแปร env ADMIN_USERNAME
และ ADMIN_PASSWORD
ในพื้นที่เก็บข้อมูลจะถูกตั้งค่าเป็น admin
และ pass
ตามลำดับ แต่คุณควรเปลี่ยนสิ่งเหล่านี้อย่างชัดเจนด้วยเหตุผลด้านความปลอดภัย
เมื่อเซิร์ฟเวอร์ทำงาน จะมีเส้นทางต่อไปนี้:
POST /admin/channels
: สร้างช่องใหม่ คุณต้องระบุชื่อที่ไม่ซ้ำกันสำหรับช่อง (โดยปกติจะเป็น ID) และการตอบกลับจะรวมข้อมูลลับของช่องซึ่งจะใช้สำหรับเชื่อมต่อกับช่องในภายหลัง จุดสิ้นสุดนี้ควรเรียกใช้ฝั่งเซิร์ฟเวอร์พร้อมข้อมูลรับรองผู้ดูแลระบบที่ให้ไว้ ควรบันทึกคำตอบไว้เพื่อเชื่อมต่อกับช่องในภายหลัง
POST /register
: ลงทะเบียนผู้ใช้ในช่อง ในการลงทะเบียนช่อง จำเป็นต้องระบุ UID, DisplayName, ChannelSecret และ ChannelName จำเป็นต้องระบุความลับผู้ใช้หรือไม่ก็ได้ แต่ถ้าไม่ใช่ เซิร์ฟเวอร์จะสร้างและส่งคืน
GET /connect
: เชื่อมต่อกับการแชทและส่งคืนการเชื่อมต่อ WebSocket พร้อมด้วยประวัติการแชท ต้องระบุช่อง UID และความลับ มีตัวเลือก LastSeq ซึ่งจะส่งคืนประวัติการแชทหลังจากการประทับเวลา LastSeq (UNIX) เท่านั้น
เส้นทางที่เหลือจะใช้เป็น 'ผู้ช่วยเหลือ' เท่านั้น:
GET /channels/{name}?secret=$SECRET
: ส่งคืนรายชื่อสมาชิกในช่อง ต้องระบุชื่อช่องเป็นพารามิเตอร์ URL และความลับของช่องเป็นพารามิเตอร์การสืบค้น
GET /admin/channels
: ส่งคืนรายการช่องที่มีอยู่ทั้งหมด
GET /admin/channels/{name}/user/{uid}
: ส่งคืนรายการข้อความที่ยังไม่ได้อ่านในการแชทสำหรับผู้ใช้
goch ได้รับอนุญาตภายใต้ใบอนุญาต MIT ตรวจสอบไฟล์ใบอนุญาตเพื่อดูรายละเอียด
เอมีร์ ริบิช