Scale Socket.IO với Redis và HAProxy – Bài 1: Giới thiệu Socket.IO, chạy demo

Socket.IO là gì?

Vào đây coi nè, http://socket.io/ :)))
Socket.IO là cái Real-time framework được ứng dụng vào rất nhiều việc. Ví dụ:

Real-time analytics

Bạn nào dùng Google Analytics hoặc Facebook Analytics thì biết. Ví dụ khi user enter vào cái ChatActivity bạn push lên một event “enter chat”, server lúc đó tính trung bình cho bạn mỗi ngày user đó vào ChatActivity mấy lần, ưng thì vẽ luôn cái report render real-time luôn.

Instant messaging and chat

Đây là cái ứng dụng mà mình sẽ xài trong series này đây.

Binary streaming

Send file cũng được nữa, quá phê :))

Document collaboration

Vụ này thì giống như nhiều người cùng edit một file Google Sheet hoặc cùng vẽ một cái gì đó.

Ai dùng nó?

Một mớ, trong đó có một thằng rất quen thuộc – Trello
Mấy team freelance hay dùng cái này để quản lý task. Bạn tham khảo technogolies bên dưới Trello ở đây: http://blog.fogcreek.com/the-trello-tech-stack/

Chạy thử cái demo coi chơi

Mình chạy thử cái chat demo xem thử nó real-time như thế nào.
Môi trường: Ubuntu 16.04. Windows hay OSX tương tự thôi, cài Node 4.x vô là phan được hết.

Clone source

Cái chat example nó nằm trong
socket.io/examples/chat

Giờ mình copy nó ra chỗ khác rồi dùng thằng socket.io ở trên npm repository để khỏi phải mang theo source của thằng socket.io chi cho mệt.

Bạn copy socket.io/examples/chat ra chỗ khác, mình sẽ bỏ nó ở blog/appconus-socket.io-chat

Giờ phải sửa code một tí để dùng socket.io trên npm repo.
Mở file index.js sửa

Mở package.json thêm socket.io 1.4.5 dependency vô. File đầy đủ như thế này:

Nếu nhác edit thì clone cái mình đã làm sẵn ở đây về chạy luôn cho nhanh.
https://github.com/havenvo/appconus-socket.io-chat.git

Run, nghía thành quả

Vào /appconus-socket.io-chat chạy:

để cài dependencies trước đã nhé.

Xong thì quất:

Kết quả:

Mở 2 tab chrome vô http://localhost:3000 chat ngon lành cành đào nhé.
Scale Socket.IO

Bonus

Chạy trên môi trường production như thế nào?

Kiểu chạy node index.js chỉ để test thôi, trên production thì dùng cách khác, tham khảo bài này:
http://blog.appconus.com/2016/04/18/dung-pm2-de-quan-ly-ung-dung-node-js-tren-moi-truong-production/

Socket.IO Android client dùng thằng nào?

Bạn muốn làm thêm thằng Android client nữa để chat với Webclient cho vui, hãy dùng thằng này:
https://github.com/socketio/socket.io-client-java

Spread the love
  •  
  •  
  •  
  •  
  •  

Leave a Reply

3 Comments on "Scale Socket.IO với Redis và HAProxy – Bài 1: Giới thiệu Socket.IO, chạy demo"

avatar
  Subscribe  
newest oldest most voted
Notify of
Anonymous
Guest

Ngắn quá nha mầy :'(

HNinh
Guest

Bai 2 dau roi ban oi 🙁 ! dang good (y)