Lựa chọn nào phù hợp cho cho ứng dụng chat

Hi các bạn, hôm nay lúc đang ngồi rảnh rỗi bỗng mình có một câu hỏi mà quên mất tìm câu trả lời từ lâu :slight_smile:.
Chả là như thế này, cách đây gần 1 năm mình có làm một con app dùng để chat và share tài liệu cũng như những thứ linh tinh để sinh viên trường mình sử dụng trong nội. Lúc đó mình với hắn chọn ngôn ngữ là C# 2 thằng làm phăng phăng và tất cả mọi thứ đều ok và con app giống như 1 cái messger của FaceBock thu nhỏ (Vì mình chủ yếu lấy nó làm mẫu :smiley: ). Cuối cùng đến phần lưu dữ liệu đc chat lên server (mysql) thì nó có 1 vấn đề này sinh như sau: “Bạn nên chọn việc lưu dữ liệu ở dưới Client © hay trong con server điều hướng socket (SDHS) ?”. Lúc này mình mới phân tích theo nhiều chiều kết hợp với đọc nhiều tài liệu trên các trang web lập trình và rút ra đc 2 thứ như sau.
1 : Thêm dữ liệu dưới client : Lý do

  • Việc thêm dữ liệu dưới client giống với việc ta chỉ chỏ vào web service để tạo tài khoản hay thay đổi tông tin,…
  • Việc này hoàn toàn logic bởi nó có thể chia nhỏ những lần querry và làm giảm công việc cho (SDHS) cụ thể luồng mà mình phân tích : “(C1) --send data-> (SDHS) --send data-> (C2) --phản hồi–> (SDHS) – 0/1–> (C1) (0 - send thất bại, 1 - send thành công).”. Lúc này thằng © nhiệm vụ của nó chỉ là lắng nghe check của (SDHS) và add.
  • Nhưng nó lại tồn tại 1 vấn đề. Ví dụ bạn có 1tr user chat cùng 1 thời điểm thì việc cả 1 tr app này gọi đến service thì nó giống như vài trắm cái xe máy đi qua cổng làng :blush:

2 : Thêm dữ liệu ở trong (SDHS)

  • Việc tuy không hợp logic cho lắm nhưng nó lại giải quyết vấn đề nhiều query. Khi bạn nhận các gói data của © bạn có thể lưu vào 1 list thông tin chat và để đó. điều này cho chúng ta querry theo gói. với những gói tin này bạn có thể làm theo kiểu
    if(list.count == 100) run querry
    bạn sẽ thao tác theo lô các gói dữ liệu này, cộng với việc ta có thể connect trực tiếp vào Database để query.

Đó là theo mình phân tích dự trên quan điểm của mình. Và lúc đó mình đã quyết định © sẽ là nơi thêm dữ liệu :sunny: Không biết có bạn nào có ý kiến khác không :slight_smile: thật sự cái app đã thì xong nhưng ko ai thèm dùng :frowning: vì có FB rồi. Mình cũng không biết các phần mềm lớn họ làm như nào nên không thể chuẩn xác được. Cảm ơn các bạn đã đọc bài mình.

Tuỳ vào server bạn là gì?

Giả sử server bạn là Viettel. Phương pháp chọn là client.
Giả sử server bạn giống Facebook. Phương pháp ở trên server.

Còn vấn đề 1 triệu user thì… bạn nên xin việc tại Facebook.

đó chỉ là một cách ví dụ đơn giản cho bài toán. :slight_smile: bạn suy nghĩ quá xa rồi :smiley:

Bạn muốn đơn giản đến mức nào cơ?

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?