← Chủ đề

Thay thế Soketi: chuyển máy chủ giao thức Pusher đi đâu

Bản phát hành cuối của Soketi là tháng 3 năm 2024. Các lựa chọn tương thích Pusher để chuyển sang, cấu hình thay đổi gì, và cách chuyển không gián đoạn.

Soketi giúp việc tự chạy máy chủ giao thức Pusher trở nên dễ dàng, và nhiều ứng dụng Laravel, Node.js vẫn đang chạy trên nó. Nhưng dự án đã chậm lại, nên các đội phụ thuộc vào nó bắt đầu hỏi nên đi đâu tiếp. Vì Soketi dùng giao thức Pusher, câu trả lời có thể chỉ là đổi cấu hình thay vì viết lại.

Tình trạng của Soketi

Theo kho mã Soketi và danh sách phát hành, kiểm tra ngày 2026-10-26.

Một máy chủ đang chạy được hôm nay có thể chạy tiếp rất lâu. Rủi ro nằm ở phía sau: phiên bản Node.js mới mà máy chủ không build được, bản vá bảo mật không ai phát hành, hoặc một lỗi bạn phải tự sửa. Với thành phần giữ kết nối của mọi người dùng, nên lên kế hoạch trước khi việc trở nên gấp.

Nơi chuyển đến tương thích Pusher

Các lựa chọn này vẫn dùng pusher-js, Laravel Echo và thư viện máy chủ của Pusher, nên kênh, endpoint xác thực và sự kiện giữ nguyên.

Giá lấy từ tài liệu giá của Laravel Cloud và pusher.com/channels/pricing, kiểm tra ngày 2026-10-26.

Bạn cũng có thể rời giao thức Pusher để dùng Socket.IO, Centrifugo hoặc Ably, nhưng phải viết lại mã client và máy chủ. Trang Thay thế Pusher nói về các lựa chọn đó.

Trước

Máy chủ của bạn
HTTP API
Soketisoketi.example.com:6001
WebSocket
Trình duyệt và ứng dụng

Sau

Máy chủ của bạn
cùng SDK, đổi host
Hibiraws.hibira.io:443
WebSocket
Trình duyệt và ứng dụng
Những gì thay đổi khi chuyển từ Soketi sang dịch vụ tương thích Pusher

Cấu hình thay đổi gì

Chỉ thông tin kết nối. Ứng dụng Laravel chạy trên Soketi thường đặt .env để driver Pusher trỏ tới host của bạn ở cổng 6001. Với dịch vụ được lưu trữ sẵn, hãy trỏ tới dịch vụ đó:

BROADCAST_CONNECTION=pusher
PUSHER_APP_ID=YOUR_APP_ID
PUSHER_APP_KEY=YOUR_APP_KEY
PUSHER_APP_SECRET=YOUR_APP_SECRET
PUSHER_HOST=ws.hibira.io
PUSHER_PORT=443
PUSHER_SCHEME=https

Trong pusher-js hoặc Laravel Echo, đổi wsHost và cổng cho khớp, giữ forceTLS: true. Các thiết lập trong app manager của Soketi, như giới hạn kết nối mỗi ứng dụng hay origin được phép, chuyển thành thiết lập ứng dụng trong bảng điều khiển của dịch vụ mới.

Chuyển đổi không gián đoạn

  1. Tạo ứng dụng trên dịch vụ mới và sao chép thông tin xác thực.
  2. Cho máy chủ phát mỗi sự kiện tới cả Soketi và dịch vụ mới. Tạo hai thể hiện thư viện máy chủ Pusher gần như không tốn gì.
  3. Phát hành thay đổi phía client. Trang mở mới sẽ kết nối tới host mới; tab cũ và bản ứng dụng cũ vẫn ở lại Soketi.
  4. Khi số kết nối của Soketi về 0 hoặc gần 0, ngừng phát tới nó và tắt đi.

Webhook cũng vậy: đăng ký endpoint của bạn trên dịch vụ mới trước bước 3. Các bước tương tự khi chuyển từ Pusher có trong hướng dẫn chuyển đổi.

Dịch vụ được lưu trữ sẵn mang lại gì

Ngoài việc không phải vận hành máy chủ, dịch vụ được lưu trữ sẵn còn có những công cụ Soketi để bạn tự lo: bảng điều khiển hiển thị số kết nối và tin nhắn, bảng gỡ lỗi hiển thị mọi sự kiện theo thời gian thực, webhook, và mức sử dụng so với giới hạn của gói.

Bảng gỡ lỗi: kết nối, đăng ký và mọi sự kiện đã phát, theo thời gian thực
Bảng gỡ lỗi: kết nối, đăng ký và mọi sự kiện đã phát, theo thời gian thực

Câu hỏi thường gặp

Soketi còn được duy trì không?

Bản phát hành cuối, 1.6.1, ra ngày 2024-03-25, và các commit sau đó là cập nhật thư viện phụ thuộc. Chính README cũng ghi rằng cập nhật và hỗ trợ không thường xuyên. Nó vẫn chạy, nhưng nên lên kế hoạch thay thế.

Lựa chọn gần với Soketi nhất là gì?

Laravel Reverb nếu muốn tiếp tục tự chạy, hoặc dịch vụ được lưu trữ sẵn tương thích Pusher nếu không muốn vận hành máy chủ. Cả hai đều giữ giao thức Pusher nên mã của bạn giữ nguyên.

Rời Soketi có phải sửa mã client không?

Không, nếu chuyển sang máy chủ hoặc dịch vụ dùng giao thức Pusher. Bạn chỉ đổi host, cổng, key và secret trong .env và trong tùy chọn của pusher-js hoặc Echo.

Tên sản phẩm là nhãn hiệu của chủ sở hữu.