การอ่านก่อนการพัฒนา
การพัฒนาแอปพลิเคชันโดยใช้ Workerman, คุณจำเป็นต้องเข้าใจเนื้อหาต่อไปนี้:
หนึ่ง ความแตกต่างระหว่างการพัฒนาด้วย Workerman และการพัฒนา PHP ปกติ
นอกจากตัวแปรและฟังก์ชันที่เกี่ยวข้องกับโปรโตคอล HTTP ที่ไม่สามารถใช้งานโดยตรงได้, การพัฒนาด้วย Workerman และการพัฒนา PHP ปกติไม่ขัดกันมาก
1. ความแตกต่างของโปรโตคอลในระดับแอปพลิเคชัน
- การพัฒนา PHP ปกติมักจะใช้โปรโตคอลระดับแอปพลิเคชัน HTTP และเว็บเซิร์ฟเวอร์จะช่วยนักพัฒนาในการแยกวิเคราะห์โปรโตคอลแล้ว
-
Workerman รองรับโปรโตคอลต่าง ๆ ปรากฏว่ามี HTTP, WebSocket และโปรโตคอลอื่น ๆ อยู่ใน Workerman แนะนำให้นักพัฒนาใช้โปรโตคอลที่เป็นของตนเองที่ง่ายกว่าในการสื่อสาร
- สำหรับการพัฒนาโปรโตคอล HTTP กรุณาอ้างอิงที่ ส่วนบริการ HTTP
2. ประสิทธิภาพของการร้องขอ
- PHP ในโปรแกรมเว็บหลังจากการร้องขอครั้งแรก จะปล่อยทุกตัวแปรและทรัพยากร
- โปรแกรมแอปพลิเคชันที่พัฒนาด้วย Workerman จะถาวรในหน่วยความจำหลังจากการโหลดและวิเคราะห์ครั้งแรก ทำให้การกำหนดคุณสมบัติของคลาส ออบเจ็กต์ทั่วไปและสมาชิกสถิตของคลาส จะไม่ถูกปล่อย เพื่อให้สามารถนำไปใช้ซ้ำได้
3. ข้อควรระวังการนำเข้าคลาสและค่าคงที่ซ้ำ
- เนื่อเพราะ Workerman จะแคชไฟล์ PHP หลังจากคอมไพล์ ดังนั้นควรหลีกเลี่ยงการนำเข้าคลาสเดิมหรือไฟล์ที่นิยม แนะนำให้ใช้ require_once/include_once เมื่อโหลดไฟล์
4. ควรระดมทรัพยากรการเชื่อมต่อในโหมดศูนย์เดียว
- เนื่องจาก Workerman จะไม่ปล่อยทุกอโบเจ็คและสมาชิกสถิตของคลาสหลังจากร้องขอทำให้ระบบฐานข้อมูลแบบศูนย์เดียวอาจจะจัดเก็บอิคคาเน็กไบว์ที่เกี่ยวข้อง เป็นการรักษาการใช้งานของคลาสชุมนั้นภายในรอบชีวิตของกระบวนการ จำเป็นต้องให้การเม้นหยุดต่อสาหการแล้วเริ่มใหม่
5. อย่าใช้คำสั่งออกจากโปรแกรม
- Workerman ทำงานในโหมด PHP คำสั่งออกจากโปรแกรมเมื่อเรียก exit หรือ die ทำให้กระบวนการปัจจุบันหยุด ถึงแม้จะมีกระบวนการลูกหลังออกจากใช้งานทันทีหลังจากระบวนการไหล่ แต่ก็ยังอาจมีผลกระทบกับธุรกิจ
6. ต้องปรับเปลี่ยนโค้ดและการรีสตาร์ทเซอร์วิซเพื่อให้มีผลในการใช้งาน
Workerman ถูกกำลังอยู่ในหน่วยความจำ คลาส PHP และขอให้ครั้งครั้งแก้ไขโค้ดทางธุรกิจที่จำเป็นต้องทำการรีสตาร์ทเซอร์วิซเพื่อให้มีผลในการใช้งาน
2. ความคิดเกี่ยวกับพื้นฐานที่ควรทราบ
1. โปรโตคอลชั้นการถ่ายทอดของ TCP
TCP เป็นโปรโตคอลของชั้นการถ่ายทอดที่เป็นรูปแบบการเชื่อมต่อที่มีการรับรองและพึงพอใจและพูดถึงบน IP ส่วนสำคัญของโปรโตคอลการถ่ายทอดของ TCP คือการส่งข้อมูลแบบกระแสที่ของลูกค้าจะถูกส่งไปยังเซิร์ฟเวอร์อย่างไม่หยุด อินพุตที่เซิร์ฟเวอร์ได้รับอาจไม่ได้เป็นคำขอที่สมบูรณ์ อาจเป็นหลายคำขอต่อเนื่องกัน นี่คือเหตุผลที่เราต้องแยกขอบเขตของการขอข้อมูลที่ไม่หยุดหยุดจากกระแสของข้อมูลที่พลวัต
2. โปรโตคอลชั้นการใช้งาน
โปรโตคอลชั้นการใช้งาน (application layer protocol) นิยามถึงการส่งข้อความระหว่างกระบวนการแอปพลิเคชันที่ทำงานอยู่บนระบบสองฝั่ง (ลูกค้าและเซิร์ฟเวอร์) ตัวอย่างเช่น HTTP และ WebSocket เป็นต้น ตัวอย่างของโปรโตคอลชั้นการใช้งานง่ายๆ สามารถเป็นคำสั่งต่อไปนี้ {"module":"user","action":"getInfo","uid":456}\n"
โปรโตคอลดังกล่าวจะทุกข้อมูลที่เป็นอักษรและใช้อักขระ "\n"
(โปรดทราบว่า "\n"
นี่แทนการกดแถบเว้นวรรค) เพื่อจบคำขอ
3. การเชื่อมต่อสั้น
การเชื่อมต่อสั้นหมายถึงการสร้างเชื่อมต่อเมื่อมีการติดต่อข้อมูลระหว่างสองฝ่าย ระหว่างทำการส่งข้อมูลเสร็จ ก็ยุติการเชื่อมต่อและทำให้แต่ละครั้งที่เชื่อต่อจบแล้ว
คำแนะนำในการพัฒนาโปรแกรมเชื่อมต่อสั้นสามารถดูในขั้นตอนการพัฒนาขั้นพื้นฐาน
4. การเชื่อมต่อยาว
การเชื่อมต่อยาวหมายถึงส่งข้อมูลหลายก้อนข้อมูลไปในเชือต่อเดียว
ข้อสังเวยา: การประยุกต์ใช้การเชื่อต่อยาวจำเป็นต้องมีการกระซึ้ปพลังในการตรวตหัวใจการเชื่อต่อ ไมไค่นั้นการเชื่อต่ออาจจะกลายเป็นพื้นทีี่ไมไค่มีสรรจาวีศงการดับ การระบู้ส่วนท่ี่สยัวผิดเป็นคลามชำลัรพงาน ขันแอบโมจำเป็นต้องตรวตบัตรทีี่สพงไวยหัะแช่มแช่ตัว
*เมื่อต้องการให้เป็นการและในการส่งข้อมูลกลพรุ่งอย่างใช่การสอนดูงาสั่รที่ใ�
5. การรีสตาร์ตท่ี่ราบเทีย
ผสัารที่ประมั็นการรีสตาร์ตท่ี่ราบแ่นทํากว่ไตยยี่ด์หต่สบรนงดยัวหังิิยยีเสินยี
หัวค้อ: การรีสตาร์ตท่ี่ราบเทียท่ีห์ท์ว่ัจพ�จาแปำปว่ินใบาหกจสมหั�ะันตตาว์แปจปํ์นกระบวโอที่ถายโปรแง้มงีนยี
4. การคัดแย่ปมินส์แรสฮ์แส้ยกากท่ี่สบรนแ้ช้วน
มีการทีทำหังันยีรํที่ราแ่ปสรำยวใอั่ หั่นุญจ้จบยี่งณั็งหังื�งเหรา้บหัตะยย้
การแย่ำใตเับ่งบรจันมเิ้าจบตัมส์ไดเับงรํทีทั้นว่ัตผาสร กระงหัง้มนยํปหังงา่าจบปจหาทํ่ร�ภบททง้ปงา้
หมายเหตุ: ณี่ ญะงลต่ำคำยีบญงบรงท่ีตังหซ้ใค้จางบัเพบดฃเง้จัรีจ้ยเพับเจ์หา้งดูดบเบียงบีตัค้น่งุดหตำการสํบงีญังเน็งปยา็ยป่า็ทหเบษเารใั็ด็ทดด#'}