Hero Kun
Senior Member
vâng bác. em thử test kiểu gọi api cho nó nhanh công nhận gọi lúc nhiều thằng thấy mệt vch.Mình chịumà thử xài message queue cũng đc, rabbitmq cho nhẹ
vâng bác. em thử test kiểu gọi api cho nó nhanh công nhận gọi lúc nhiều thằng thấy mệt vch.Mình chịumà thử xài message queue cũng đc, rabbitmq cho nhẹ
đc bác nhé. socket em nghĩ chỉ cần auth lần đầu thôi chứ ko cần bất kỳ event nào cũng auth làm gì cho mệt. Lưu ý 1 cái là để tránh việc có thằng rảnh lol nào tạo tool connect socket của mình liên tục thì nên làm 1 cái timeout để bắt buộc nó phải gọi event auth.ah bác cho em hỏi chút, hiện tại em đang làm stompsocket và hiện tại em đang làm.
khi client bắt đầu khởi tạo kết nối socket nó gửi token lên để thằng server nó xác thực và server sẽ trả lại id kết nối, chỉ cần gửi token một lần duy nhất. những lần sau truyền nhận tin nhắn thì em ko gửi token lên nữa chỉ gửi nội dung tin nhắn và id kết nối.
Vậy ổn ko bác nhỉ.
vâng ạ. có khi nào do em ko cài đặt bảo mật cho tin nhắn nên chỉ cần lần đầu ko bảo nhỉ. tại cái lúc thằng client kết nối thì em check jwt xem ok ko, nếu ko em cho kết nối, ngoài ra em ko set gì thêm (tại set thì bị lỗi vs api bình thường )đc bác nhé. socket em nghĩ chỉ cần auth lần đầu thôi chứ ko cần bất kỳ event nào cũng auth làm gì cho mệt. Lưu ý 1 cái là để tránh việc có thằng rảnh lol nào tạo tool connect socket của mình liên tục thì nên làm 1 cái timeout để bắt buộc nó phải gọi event auth.
Đại loại là:
- connect ws -> set timeout 5s +socket.on('auth, ( ) => {kill(timeout id)}
- nếu sau 5s ko ai gọi event auth -> disconnect socket
thực ra token expires/revoke ko khó để xử lý lắm. Mình xử lý đơn giản là lúc nó connect thì join nó vào 1 room. Xong lúc token token expires/revoke thì mình chỉ cần socket.to(userId).disconnect()Vụ socket này tính ra nên auth 1 lần đầu tiên thôi, chứ nghĩ mấy case token bị expires/revoke thì đau đầu phết.
Vụ socket này tính ra nên auth 1 lần đầu tiên thôi, chứ nghĩ mấy case token bị expires/revoke thì đau đầu phết.
làm mấy cái socket đặt biệt liên quan tới ứng dụng nhắn tin khoai vchthực ra token expires/revoke ko khó để xử lý lắm. Mình xử lý đơn giản là lúc nó connect thì join nó vào 1 room. Xong lúc token token expires/revoke thì mình chỉ cần socket.to(userId).disconnect()

m chưa thử nhưng đang nghĩ đến phương án gửi mock list image data lên BE. Kiểu [img_name1, img_name2]. Tắt browser thì find xong delete thui.Mọi người cho e hỏi ngoài lề là: trong lúc upload nhiều ảnh, user đóng tab trong khi vẫn đang upload, làm sao mình xoá được những ảnh mà được upload thành công ạ. Em có upload lên cloudinary.
nó liên quan đến việc bác join room, leave room. Thường thì sẽ có 2 thằng room id là userid và chatid.làm mấy cái socket đặt biệt liên quan tới ứng dụng nhắn tin khoai vch![]()
cái phần này cũng không khooai lắm mà em thấy khoai ở chổ tạo cái api để call các tin nhắn củ hơn hoặc tin nhắn bị miss khi mất mạng chẳng hạn. xử lý trên frontend cũng lằng ngoẵng nữa.nó liên quan đến việc bác join room, leave room. Thường thì sẽ có 2 thằng room id là userid và chatid.
2 thằng chat với nhau thì sẽ join cùng 1 room id chat (chatid được tạo lúc thằng A send msg đầu tiền với thằng B) . Chat xong xuôi thì leave room
Bác có hiểu biết gì về performance của socket kothực ra token expires/revoke ko khó để xử lý lắm. Mình xử lý đơn giản là lúc nó connect thì join nó vào 1 room. Xong lúc token token expires/revoke thì mình chỉ cần socket.to(userId).disconnect()
em mới làm một cái ứng dụng be bé nhắn tin tạm ổn nhưng ko rõ để phục vụ 10k user nhắn tin có khó lắm ko bác.Bác có hiểu biết gì về performance của socket ko
Kiểu như với ứng dụng vài k vài chục k user thì k sao nhưng lên tới hàng triệu chục tr user thì server nó đáp ứng nổi k nhỉ, vì e hiểu socket nó chỉ có số slot nhất định
tạo tin nhắn thì cho xuống worker hết nha báccái phần này cũng không khooai lắm mà em thấy khoai ở chổ tạo cái api để call các tin nhắn củ hơn hoặc tin nhắn bị miss khi mất mạng chẳng hạn. xử lý trên frontend cũng lằng ngoẵng nữa.
chưa hiểu ý bác về slot nhất địnhem mới làm một cái ứng dụng be bé nhắn tin tạm ổn nhưng ko rõ để phục vụ 10k user nhắn tin có khó lắm ko bác.
Cụ thể như thế nào bác nhỉ em chưa dùng cái này nên thuật ngữ này em ko hiểu lắm.
Vâng ạ. em đang dùng như vậy ạ. về phần user thì em dùng mã nguồn mmowr keyCloack ạ. chạy rồi bác ạ.heheDự án cá nhân thì cứ spring oauth2 authorization server với eureka thôi))
Bác có hiểu biết gì về performance của socket ko
Kiểu như với ứng dụng vài k vài chục k user thì k sao nhưng lên tới hàng triệu chục tr user thì server nó đáp ứng nổi k nhỉ, vì e hiểu socket nó chỉ có số slot nhất định
keycloak là SSO mà bác, còn bác này đúng hơn là phải tìm hiểu OAuth2Nghiên cứu keycloak xem![]()