Học những gì để có thể làm app chat online?

nếu bây giờ mình cần code ra một cái app chat online có các chức năng cơ bản:
+gọi video call (thấy hình ảnh và âm thanh)
+gọi thường (chỉ nghe âm thanh)
+chat online với nhau
thì mình cần phải học những thứ gì để có thể làm được app này vậy mọi người(giả sử mình đã học xong các ngôn ngữ lập trình cần thiết để làm ra app này nên chỉ cần học những thứ khác)

Video call, gọi thường liên quan đến giao thức UDP, realtime liên quan đến socket, encrypt bao gồm hash để mã hóa mật khẩu, mã hóa bất đối xứng để mã hóa tin nhắn, mã hóa đối xứng để mã hóa file.

4 Likes

Thay vì giả sử như vậy, thì bạn giả sử như bạn cày vuốc kiếm được rất nhiều tiền và thuê người làm cho bạn thì sẽ có lý hơn

làm được những cái đơn giản trước khi làm đến những cái cao siêu

Mình đặt gạch ở đây và chờ ngày bạn post demo chương trình chat của bạn. Chúc bạn thành công!

Counter up:

  • 2022-01-12: Day 1!
  • 2022-01-16: Day 5!
6 Likes

Tìm hiểu về “thư viện bên thứ 3” :kissing:

4 Likes

Chủ topic lại mơ mộng thành thần Thor có thể dùng bàn phím bình thiên hạ nữa rồi. Lo mà luyện Tứ thư và Ngũ kinh trong lập trình đi đã rồi mới tiếp. Cách làm: mỗi ngày đọc 30 trang sách về lập trình, nên mua sách tốt trên Amazon. Thế nào là sách tốt thì đã có đàn anh đi trước hướng dẫn cụ thể TẠI ĐÂY.

Những khái niệm cơ bản, nền tảng không có, chưa cài đặt được mấy đoạn code demo ví dụ cơ bản thì… còn khuya mới làm được mấy cái to lớn khủng khiếp như kia. Ngay cả công ty FPT mà còn phải sử dụng lại nguồn mở thì 1 cá nhân mới tự học lập trình chưa được bao lâu, chưa tham gia dự án nào ra hồn lại làm được e rằng… hoang tưởng nặng.

Vậy nhé, siêng đọc sách và viết code đi, chứ còn “nóng đít” nhảy loi nhoi trên mạng thì 10 năm sau cũng chẳng làm được gì đâu. Mình đã qua cái thời đó nên biết rất rõ rằng tốt hơn hết là cứ đóng cửa đọc sách và gõ code trên máy tính không nối mạng Internet (còn có khả năng lập mạng LAN với 10 cái máy tính cũ thì OK, dùng LAN này thực hành load balancing khi phần mềm ngốn tải). Có cái điện thoại thì vứt luôn nó vào sọt rác để nó bớt làm phiền, gây mất tập trung khi viết code. Chỉ 1 lần kiểm tra điện thoại là mất cả tiếng sau mới lại tập trung được => hỏng bét!

6 Likes

Bạn tìm hiểu về WebRTC và WebSocket nhé…

2 Likes

Nếu dùng thư viện bên thứ 3 thì khá nhanh VD : socket.io, reactJS, angular, … nhưng vẫn dựa trên kiến thức cơ bản này.

Video call, gọi thường liên quan đến giao thức UDP, realtime liên quan đến socket, encrypt bao gồm hash để mã hóa mật khẩu, mã hóa bất đối xứng để mã hóa tin nhắn, mã hóa đối xứng để mã hóa file.

Đây là app chat realtime với firebase chỉ đúng 2 hàm là hàm gửi và nhận tin nhắn (subcribe)

<!DOCTYPE html>
<html>

<head>
<script src="https://www.gstatic.com/firebasejs/8.8.0/firebase-app.js"></script>
<script src="https://www.gstatic.com/firebasejs/8.8.0/firebase-database.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
</head>
<form onsubmit="return sendMessage();">
<input id="name" placeholder="name">
<input id="message" placeholder="message">
<input type="submit">
</form>
<ul id="List"></ul>
<script>
firebase.initializeApp({ databaseURL: "Your firebase realtime URL" });
function sendMessage() {
    firebase.database().ref("messages").push().set({
        "sender": $("#name").val(),
        "message": $("#message").val()
    });
    return false;
}
// listening incoming message 
firebase.database().ref("messages").on("child_added", function (snapshot) {
    html = snapshot.val().sender + ": " + snapshot.val().message;
    $("#List").append("<li>" + html + "</li>");
});
</script>

</html>

Kết quả

4 Likes

Của bạn đang dừng ở “proof of concept” của 1 trong 3 thứ phải có của phần mềm chủ topic yêu cầu thôi. Để làm hoàn chỉnh cái như bạn ấy mong đợi là quãng đường dài, chuyên tâm.

Câu trả lời là bạn ấy ít ra phải học lập trình một ngôn ngữ nào đó cho ổn ổn rồi mới hình dung phải học cái gì tiếp theo. Việc chỉ ra chính xác bạn ấy phải học món A, B, C,… những gì để làm cái đó sẽ là kiểu như… Hỏi: ăn gì để giảm cân? Đáp: nhịn ăn.

6 Likes

cám ơn các bạn đã góp ý

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