2013-04-17 29 views
5

Tôi tự hỏi liệu có bất kỳ cách nào để truyền socket.io đến một quá trình được chia nhỏ trong node.js hay tái tạo lại socket socket.io trong quá trình chia tách ?socket.jio vượt qua socket.io socket đến quá trình chia tách

child = require("child_process").fork("worker.js") 
io.sockets.on("connection", function(socket){ 
    child.send("socket", socket); //this definitely fails now 
}) 
+1

mô-đun 'cụm' như thế nào? Nếu bạn muốn phân cụm. [Mẫu liên kết 'socket.io' + 'express' này] (https://gist.github.com/nulltask/1877289) –

+0

bạn có thể làm ngã ba bằng mô-đun cụm – user568109

Trả lời

0

Giải pháp: Sử dụng Redis

Im chắc chắn bạn sẽ rất vui khi biết về sự tồn tại của socket.io-redis

Với nó, bạn sẽ có thể gửi/nhận các sự kiện (chia sẻ khách hàng) giữa nhiều phiên bản mã của bạn (quy trình hoặc máy chủ). Read more : socket.io-redis (Github Repo.)

Với điều này bạn có thể mở rộng:

  1. theo chiều dọc (tăng số lượng các chủ đề cho mỗi máy)
  2. ngang (triển khai nhiều "bậc thầy" accross máy trở lên)

There is an example app at github

Đây là ứng dụng khách/máy chủ Node.JS rất đơn giản hiển thị cách thiết lập Express.js, Socket.IO 1.x và socket.io-redis cùng nhau.

Điều này rất hữu ích làm điểm bắt đầu để hiểu cách chia tỷ lệ Ứng dụng RealTime Socket.IO cần nhiều quy trình máy chủ. Redis được sử dụng như một điểm lưu trữ (bộ điều hợp) để chạy nhiều trường hợp socket.io trong các quy trình hoặc máy chủ khác nhau có thể tất cả các sự kiện phát sóng và phát ra cho nhau.

Các vấn đề liên quan