Tôi có một ứng dụng web được viết bằng Laravel 4. Ứng dụng này sử dụng Ratchet và cụ thể hơn, nó sử dụng gói Latchet. Là một sidenote Tôi đang sử dụng các kỹ thuật sau:Thực tiễn tốt nhất khi sử dụng ổ cắm web?
Bây giờ tôi nhận được kịch bản sau đây:
- Tôi có một slideshow mà nên nhận cập nhật thông qua websocket.
- Toàn bộ ứng dụng được thiết lập và tôi có thể xuất bản các thay đổi mã mới từ PHP cho các máy khách websocket của tôi thông qua ZeroMq.
Trong routes.php tôi, tôi có đoạn mã sau, vì vậy mà một chủ đề được đăng ký một cách chính xác:
//routes.php // Setup a connection and register a topic where clients can connect to. Latchet::connection('Connection'); Latchet::topic('PhotoStream/{client}', 'PhotoStreamController');
Sau đó, tôi bắt đầu máy chủ ratchet.
sudo php artisan latchet:listen
Khi một bức ảnh được tải lên, tôi sau đó có thể chạy các đoạn mã sau để đẩy bản cập nhật cho khách hàng được nghe chủ đề của tôi (PhotoStream/client1
trong trường hợp này):
// Create the object, save it to db and then publish it to my websockets
$photo = new Photo;
$photo->location = 'path/to/file';
$photo->save();
// Publish it through my websocket clients. (push from server).
Latchet::publish('PhotoStream/client1', array('msg' => $photo->toArray()));
Mã này tất cả đều hoạt động, nhưng trong trường hợp cập nhật. Câu hỏi của tôi là như sau:
Tôi nên xử lý việc khởi tạo ứng dụng khách như thế nào?
- Tôi có nên hiển thị trang bằng PHP cũ đơn giản và sau đó khởi chạy ứng dụng websocket của mình sau đó nhận thêm thông tin cập nhật (nếu có) ?.
- Hoặc tôi có nên, khi tôi đăng ký ứng dụng khách web mới, hãy cung cấp thêm thông số với yêu cầu để máy chủ gửi cho tôi dữ liệu hoàn chỉnh thông qua websockets?
Tùy chọn thứ hai trong số hai tùy chọn có vẻ là lựa chọn tốt nhất cho tôi nhưng tôi thực sự không biết cách thực hiện điều này theo cách tốt.
Tôi muốn bạn nhận được nhiều trả lời hơn. Tôi đang bắt đầu cuộc hành trình của mình để triển khai các websockets với laravel; Tôi biết rất ít nhưng tìm kiếm của tôi vẫn tiếp tục. –
Chắc chắn giữ cho tôi cập nhật! –
Vâng, chắc chắn không sử dụng BrainSockets. Họ nói rằng họ đang ở v1.0, nhưng nó không thể cho máy chủ để đẩy. Tôi sẽ kiểm tra lại khi tôi thử một plugin socket khác. –