คู่มือ WebSockets Support for PHP สำหรับ เครื่องมือสำหรับนักพัฒนา
คู่มือนี้เรียบเรียงสำหรับ Ruk-Com PaaS หน้าจอและตัวเลือกอาจแตกต่างตามเวอร์ชันและสิทธิ์ของบัญชี
ตรวจสอบ Environment, Region, สิทธิ์บัญชี และสำรองค่าปัจจุบันก่อนดำเนินการกับระบบจริง
คำสั่ง ชื่อเมนู Parameter และค่าตัวอย่างในกรอบ Code คงรูปแบบตามระบบเพื่อให้คัดลอกและตรวจสอบได้ถูกต้อง
WebSocketเป็นเทคโนโลยี Client-Server ที่แพร่กระจายอย่างกว้างขวางซึ่งช่วยให้คุณสามารถใช้การแลกเปลี่ยนข้อความโต้ตอบแบบทันทีภายใน Application ของคุณซึ่งสามารถทำได้โดยการสร้างการเชื่อมต่อที่ใช้ TCP แบบฟูลดูเพล็กซ์อย่างต่อเนื่องระหว่าง Server และ Browser ของ Client การใช้ช่องทางการสื่อสารดังกล่าวส่งผลให้เกิดเวลาแฝงในการเชื่อมต่อที่ต่ำมากและการโต้ตอบที่รวดเร็วพร้อมกันทำให้มั่นใจได้ว่าการสตรีมผ่านพรอกซีและ Firewall ทั้งต้นน้ำและปลายน้ำในคราวเดียว
Platform ดังกล่าวให้การสนับสนุน WebSockets ขั้นสูงและเสริมแก่คุณโดยการบูรณาการเทคโนโลยีนี้เข้ากับLoad Balancer ที่ใช้ร่วมกันและNode Balancer NGINXเพื่อให้คุณสามารถใช้งานได้แม้จะไม่ได้แนบที่อยู่ IP ภายนอกกับ Server ของคุณก็ตามสิ่งนี้ได้มาจากการพร็อกซี Port ต่างๆที่ใช้โดยแอป WebSockets ของคุณเป็น Port เดียว - 80 สำหรับ HTTP และ 443 สำหรับ HTTPS
วิธีที่ง่ายที่สุดในการกำหนดค่าการรองรับ WebSockets สำหรับแอปของคุณคือการวางBalancer NGINXด้านหน้า (สามารถดูคำแนะนำโดยละเอียดได้ในเอกสารที่เกี่ยวข้อง)เอกสาร). อย่างไรก็ตามบางครั้งวิธีการดังกล่าวอาจขัดแย้งกับข้อกำหนดของคุณด้วยเหตุผลบางประการในขณะที่ Application ยังคงต้องมีการนำเทคโนโลยีนี้ไปใช้ในกรณีดังกล่าว Platform จะรับประกันการสนับสนุน WebSockets เต็มรูปแบบภายใน Application Server ที่มีอยู่ซึ่งรวมถึงทั้งสองอย่างอาปาเช่(มีไว้เพื่อให้บริการแอป PHP, Ruby และ Python) และNGINX(สำหรับแอป PHP และ Ruby)
กระบวนการบูรณาการของ WebSocket อาจแตกต่างกันไปในแต่ละ Application แต่สำหรับการตั้งค่าฝั่ง ServerPlatform จะให้ตัวอย่างการกำหนดค่าสำหรับแต่ละ Node ที่กล่าวมาข้างต้นดังนั้นคุณเพียงแค่ต้องยกเลิกการใส่ข้อคิดเห็นและเพิ่มการแก้ไขเล็กน้อยเล็กน้อยตามข้อกำหนดเฉพาะของแอปของคุณ (เช่นหมายเลข Port ผู้ฟัง)
ดังนั้นในบทช่วยสอนทีละขั้นตอนด้านล่างเราจะแสดงตัวอย่างการกำหนดค่าดังกล่าวสำหรับโปรเจ็กต์แชท PHP แบบง่ายซึ่งใช้งานใน Environment โดยไม่ต้องใช้ Server Balancer และใช้เทคโนโลยี WebSockets มาเริ่มกันตั้งแต่ต้นเลย
สร้าง Environment และ Deploy Application
ด้วย Platform นี้คุณสามารถสร้าง Environment ที่ต้องการได้ด้วยการคลิกหลายครั้ง - เพียงเข้าสู่ระบบบัญชี PaaS ของคุณแล้วทำตามขั้นตอนด้านล่าง:
- คลิกที่Environment ใหม่ปุ่มที่มุมซ้ายบนของ Dashboard
2.ภายในที่ปรากฏตัวช่วยสร้าง Environmentหน้าต่างสลับไปที่แท็บภาษาการเขียนโปรแกรมที่จำเป็นและเลือก Application Server ที่ต้องการ (เราจะใช้ไฟล์อาปาเช่หนึ่งอันสำหรับให้บริการ Application PHP ของเรา) จากนั้นกำหนดจำนวน Resource ที่จัดสรรโดยใช้แถบเลื่อน cloudlet พิมพ์ชื่อสำหรับ Environment ของคุณ (apache-websocketsในกรณีของเรา) และคลิกสร้าง.
3. ภายในไม่กี่นาที Environment ใหม่ของคุณจะปรากฏที่ Dashboard
4. อัปโหลดและ Deploy Application ของคุณโดยใช้ Platform Deployment Manager หรือผ่าน Git Repository/SVN ระยะไกล (คำแนะนำที่จำเป็นตามกลไกที่เลือกสามารถพบได้ในคู่มือการ Deploy).
ด้วยเหตุนี้โปรเจ็กต์ที่ Deploy ของคุณจะแสดงรายการในส่วนที่เหมาะสมที่แผงของ Environment
การกำหนดค่า Server และ Application
การสนับสนุน WebSockets ภายใน Server Apache นั้นมาจากproxy_wstunnel_moduleโมดูลที่เพิ่มเข้าไปในบิลด์ของ Server เริ่มต้นสำหรับ Application Server NGINX นั้นจะใช้ความสามารถแบบฝังตัวในการพร็อกซีการเชื่อมต่อ WebSockets เช่นเดียวกับวิธีการNGINX-Balancerทำ.
ถึงเวลากำหนดค่า Application Server ของคุณแล้ว
- คลิกที่การกำหนดค่าปุ่มถัดจาก Node Server แอปของคุณ:
2. ในช่องเปิดเครื่องมือจัดการการกำหนดค่าดำเนินการขั้นตอนภายในส่วนคำแนะนำข้อใดข้อหนึ่งต่อไปนี้ตาม Server ที่เลือก:
- สำหรับ Server แอป Apache
ค้นหาhttpd.confไฟล์ภายในการประชุมDirectory และยกเลิกหมายเหตุสตริงถัดไปที่ส่วนท้ายสุด (ประมาณที่บรรทัดที่ 962)
คัดลอกอาปาเช่
<Location /ws>
ProxyPass ws://127.0.0.1:<PORT>
ProxyPassReverse ws://127.0.0.1:<PORT>
</Location>
ตอนนี้เปลี่ยนทั้งสองอย่างแล้ว<PORT>Parameter ไปยังหมายเลข Port ซึ่ง Application WebSockets ของคุณฟัง (เช่นการใช้งานของเรา9000หนึ่ง).
ตรวจสอบให้แน่ใจว่าปรากฏเหมือนกับภาพด้านล่าง
บันทึกการเปลี่ยนแปลงที่ทำโดยใช้ปุ่มชื่อเดียวกันเหนือตัวแก้ไข
- สำหรับ Server แอป NGINX
ค้นหา#รองรับ WebSocketส่วนภายในnginx.confไฟล์ (อยู่ภายในการประชุมdirectory) และยกเลิกการใส่เครื่องหมายข้อคิดเห็นในบรรทัดต่อไปนี้:
สำเนา nginx
upstream websocket {
server 127.0.0.1:<PORT>;
}
…
location /ws {
proxy_pass http://websocket;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
}
จากนั้นจึงแทนที่
3. นั่นคือการกำหนดค่า Server ทั้งหมดที่คุณต้องทำดังนั้นสิ่งเดียวที่เหลือคือการกำหนดค่า Application ที่ Deploy ของคุณให้เข้าถึงไฟล์การกำหนดค่า Application ของคุณซึ่งรับผิดชอบการตั้งค่า WebSockets และปรับสเส้นทางที่มีอยู่ตามรูปแบบถัดไป:
ws://{env_domain}{path_to_ws_file}
ที่ไหน
- {env_url}ควรแทนที่ด้วย Domain Environment ของคุณ (สามารถดูได้ภายใต้ชื่อ Environment ที่ Dashboardnode.example.ruk-com.cloudในกรณีของเรา)
- {path_to_ws_file}จำเป็นต้องเปลี่ยนตามเส้นทางไปยังไฟล์ที่ควรเข้าถึงเมื่อสร้างการเชื่อมต่อ WebSockets
ควรมีลักษณะคล้ายกับภาพด้านล่าง:
4.บันทึกการเปลี่ยนแปลงและRestartApplication Server ของคุณด้วยปุ่มที่เกี่ยวข้อง
5. เยี่ยมมากตอนนี้เสร็จแล้ว! คลิกที่เปิดใน Browserเพื่อเรียกใช้ Application ของคุณในแท็บ Browser ใหม่
6. อย่างที่คุณเห็นแอปแชทตัวอย่างของเราทำงานได้อย่างมีเสน่ห์
แม้จะใช้งาน Application แชทที่เรียบง่ายคุณยังคงได้รับผลประโยชน์จากการถ่ายโอนข้อความที่รวดเร็วอย่างเห็นได้ชัดซึ่งใช้ได้เนื่องจากการใช้ Protocol WebSockets สนุก!
