Simpleton เป็นโซลูชันการบันทึกฐานข้อมูล UDP แบบตายตัวที่เพิ่งยอมรับแพ็กเก็ต UDP และเก็บไว้ในฐานข้อมูล SQLite3 ตามค่าเริ่มต้นจะเก็บไว้ใน simpleton.db
ในไดเร็กทอรีปัจจุบัน แต่คุณสามารถแทนที่สิ่งนี้ได้ด้วยตัวเลือกบรรทัดคำสั่ง
สิ่งนี้ไม่ได้มีประโยชน์มากนักสำหรับสิ่งใดนอกจากการทดสอบง่ายๆ แต่คุณสามารถขยายเพิ่มเติมได้
ในการสร้าง simpleton คุณเพียงแค่รัน make
และไบนารี่จะปรากฏขึ้นในไดเร็กทอรี bin
ตามค่าเริ่มต้นมันจะสร้างสำหรับ OSX
make
หากต้องการสร้างสำหรับแพลตฟอร์มอื่น โปรดแก้ไขตัวแปร GOOS
และ GOARCH
ใน Makefile
คุณยังสามารถป้อนพารามิเตอร์เหล่านี้บนบรรทัดคำสั่งเมื่อคุณรัน make
เช่นนี้
GOOS=linux GOARCH=amd64 make
คุณสามารถค้นหาค่าสำหรับตัวแปรเหล่านี้สำหรับแพลตฟอร์มต่างๆ ได้ใน syslist.go แต่ค่าที่พบบ่อยที่สุดคือ:
ระบบปฏิบัติการ | กูส | โกอาร์ช |
---|---|---|
OSX | ดาร์วิน | amd64 |
ลินุกซ์ | ลินุกซ์ | amd64 |
หน้าต่าง | หน้าต่าง | amd64 |
แน่นอน คุณสามารถคอมไพล์ข้ามระบบได้ (เช่น คอมไพล์ไบนารี Linux บนเครื่อง OSX) โดยเพียงแค่ตั้งค่าการผสมผสานที่ถูกต้องของ GOOS และ GOARCH แม้ว่า Windows คุณอาจจะประสบปัญหาก็ตาม (ฉันไม่ได้สร้างสิ่งนี้สำหรับ Windows)
ไบนารี่จะปรากฏขึ้น bin
ดังนั้นคุณสามารถเรียกใช้จากไดเร็กทอรีหลักด้วย:
bin/simpleton
หากต้องการแสดงรายการตัวเลือกบรรทัดคำสั่ง คุณใช้แฟล็ก -h
:
bin/simpleton -h
นี่คือตัวอย่างของการรัน Simpleton พร้อมตัวเลือกเพื่อให้ฟังอินเทอร์เฟซเฉพาะ (10.1.0.3 ในตัวอย่าง) และพอร์ต (7788) และจัดเก็บฐานข้อมูลใน /tmp/simpleton.db
:
bin/simpleton -u 10.1.0.3:7788 -d /tmp/simpleton.db
หากคุณต้องการสำรวจฐานข้อมูลผลลัพธ์ คุณสามารถติดตั้ง SQLite3 บนเครื่องของคุณ และตรวจสอบฐานข้อมูลโดยใช้คำสั่ง sqlite3
หากต้องการเปิดฐานข้อมูลในตัวอย่างก่อนหน้านี้ ให้รัน:
sqlite3 /tmp/simpleton.db
พิมพ์ .schema
เพื่อดูสคีมาฐานข้อมูลอย่างง่าย ตอนนี้คุณสามารถดำเนินการคำสั่ง SQL กับข้อมูลได้แล้ว
หมายเหตุ: ฉันไม่แน่ใจทั้งหมดเกี่ยวกับการทำงานพร้อมกันของ SQLite3 ดังนั้นฉันจะไม่ใช้ฐานข้อมูลเป็นจุดรวม (คุณไม่ควรใช้)
นี่คือสาเหตุที่โค้ดมีการล็อค mutex ในการเข้าถึงฐานข้อมูล โค้ดนี้นำมาจากโปรเจ็กต์ที่มีโกรูทีนหลายตัวที่เข้าถึงฐานข้อมูล โปรแกรมนี้ไม่มีสิ่งนั้น แต่ฉันทิ้งการล็อก mutex ไว้เพื่อเป็นการเตือนใจ
สำหรับการใช้งานจริง คุณควรใช้ฐานข้อมูล PostgreSQL หรือที่คล้ายกันซึ่งสร้างขึ้นสำหรับการใช้งานพร้อมกัน แต่สำหรับการทดลองเล็กๆ และเมื่อคุณมีการทำงานพร้อมกันที่จำกัด SQLite3 ถือเป็นสัตว์ร้ายตัวน้อยที่มีความสามารถอย่างน่าประหลาดใจ
โปรดทราบว่าอินเทอร์เฟซ HTTP ไม่มีกลไกการตรวจสอบสิทธิ์หรือความปลอดภัย ดังนั้นอย่าใช้สิ่งนี้เพื่อสิ่งอื่นนอกเหนือจากการทดสอบ ที่อยู่เริ่มต้นของเว็บอินเตอร์เฟสคือ:
http://localhost:8008/
เว็บอินเตอร์เฟสค่อนข้างเรียบง่าย คุณมีสอง URL ที่เข้าถึงข้อมูล:
/data
/data/{id}
รายการแรกส่งคืนอาร์เรย์ JSON รายการที่สองส่งคืนเพียงเพย์โหลดของการป้อนข้อมูลที่กำหนดโดย ID เส้นทาง /data
จะถูกจำกัดเพียง 20 รายการใหม่ล่าสุดในฐานข้อมูล แต่คุณสามารถเพจผ่านฐานข้อมูลได้โดยการตั้ง offset
และ limit
พารามิเตอร์ URL:
/data?offset=10&limit=10
Simpleton รองรับการมีไดเร็กทอรีพร้อมไฟล์คงที่ เพื่อให้คุณสามารถสร้างหน้า HTML บางหน้าพร้อมลิงก์ที่มีประโยชน์ไปยังเนื้อหาหรืออาจโฮสต์แอปพลิเคชัน JS-frontend
ตรวจสอบวิธีใช้บรรทัดคำสั่งเพื่อดูพารามิเตอร์ที่คุณสามารถเล่นได้