Cách tích hợp với các khung khác
Câu hỏi:
Cách tích hợp với các khung mvc khác (như thinkPHP, Yii, v.v.)?
Trả lời:

Kết hợp với các khung mvc khác khuyến nghị theo cách trong hình trên (lấy ThinkPHP làm ví dụ):
-
ThinkPHP và Workerman là hai hệ thống độc lập, được triển khai độc lập (có thể triển khai trên các máy chủ khác nhau), không gây nhiễu nhau.
-
ThinkPHP cung cấp các trang web thông qua giao thức HTTP để hiển thị trong trình duyệt.
-
Các js do ThinkPHP cung cấp khởi tạo kết nối websocket, kết nối đến workerman.
-
Sau khi kết nối, gửi một gói dữ liệu đến Workerman (bao gồm tên người dùng, mật khẩu hoặc một chuỗi token nào đó) để xác thực kết nối websocket thuộc về người dùng nào.
-
Chỉ khi ThinkPHP cần gửi dữ liệu đến trình duyệt, mới gọi đến giao diện socket của workerman để gửi dữ liệu.
-
Các yêu cầu khác vẫn được xử lý theo cách HTTP ban đầu của ThinkPHP.
Tóm tắt:
Sử dụng Workerman như một kênh có thể gửi dữ liệu đến trình duyệt, chỉ gọi đến giao diện Workerman để hoàn thành việc gửi khi cần gửi dữ liệu đến trình duyệt. Tất cả logic kinh doanh được hoàn thành trong ThinkPHP.
Cách ThinkPHP gọi giao diện socket của Workerman để gửi dữ liệu tham khảo xem phần câu hỏi thường gặp - Gửi trong dự án khác
ThinkPHP chính thức đã hỗ trợ workerman, tham khảo Hướng dẫn ThinkPHP5