Ứng dụng chat
Không biết ở đây ai đã từng là ứng dụng chat trong thực tế chưa. Mình đang muốn xây dựng một ứng dụng chat như zalo, tele, skype, giao tiếp giữa các app mobile và đáp ứng được lượng người dùng lớn về sau. Hiện tại ứng dụng đang sử dụng socket.io trong nodejs, nhưng thi thoảng hay bị lỗi kết nối giữa client (ios) và server (có issue trên repo nhưng chưa giải quyết được) Vậy nên mình muốn hỏi mọi người, ai đã từng làm với hệ thống chat, cho mình xin keyword về công nghệ mà mọi người đã áp dụng không ạ.
3 CÂU TRẢ LỜI
Công nghệ sử dụng chính là viết lại toàn bộ lớp socket để tối ưu cho data với trafic. vì đơn thuần 1 loại công nghệ nào đó chỉ có thể dám ứng được nhu cầu của 1 loại dịch vụ. Nodejs có 1 loại khuyết điểm là ko đồng thời nhiều kết nối, nhưng lại có hiệu năng cao.(ai dùng nodejs là phải kết hợp với firebase thì mới làm ứng dụng chat dc). Vì thể nói đến Zalo mình phải hiểu là ko dùng Nodejs dc nhé. thay vì cứ đinh tìm công nghệ mình đào sâu vào bản chất . Và cai cuối dùng mà hệ thống chat ko bị gẫy là cân bằng tải.
Hệ thống ít người xài thì build sao cũng được. Nhưng nếu muốn scale up lớn thì bạn có thể tham khảo kiến trúc sau: https://medium.com/@anuragvikramsingh/building-a-chat-service-using-micro-services-architecture-1494900a70b2
lỗi kết lỗi ở đây là ntn? xin link để xem rồi mới quyết định đc.
@le.vinh.thien thi thoảng em thấy bên client có log ra message như này:
connection closed by server, code=1000, type=protocolError
em có thấy issue trên repo của bên socket-swift: https://github.com/socketio/socket.io-client-swift/issues/1161 nhưng có vẻ vẫn chưa đc resolve@datcpu cái kia chưa đc close do nó ko tái hiện lại đc bug nên ko ai biết trường hợp nào lỗi, phần comment có 1 ng cũng bị vậy nhưng trong trường hợp họ enter to background mode. Không biết bạn có gặp tương tự ko, nếu cũng bị khi enter to background mode thì trên app chỉ cần handle cái event đó và xử lý thôi.