PDA

View Full Version : Thảo Luận cách truyền dữ liệu trong Web chat ???



shrimp2t
15-03-2010, 11:59
Em đang muấn làm 1 cái shoutbox chat đơn giản bằng: PHP, MySQL, jquery.
nhưng gựp rắc rối về cách truyền và nhận dữ liệu

Cụ thể như sau :
Do là chat trên Web nên:
Máy trạm yêu cầu -> máy chủ đáp trả.
Cập nhật thông tin :
sau 1s dung Jquery cạp nhật 1 thông tin . (Thời gian cập nhât khong quan trong).
Có 2 cách cập nhật:
• Load 1 sô lượng tin nhât định từ cơ sở dữ liệu ví dụ mỗi lần cập nhật là 30 tin.(khi nhấn Enter hoặc nut Send hoặc cập nhật (thì lại thêm cái tin vùa gửi vào CSDL- nếu có), sau đó lại load ra <=30 tin gửi cho máy chạm,Các tin trong ô chatbox được ghi lại => cách này không hay lắm, Nhưng dễ làm,...
• Chỉ load nhưng cái tin nào mới (nếu có ) ( tin mà bên máy trạm nào đó chua có).
Nhưng khó nôi là làm thế nào mà cho máy chủ biết được máy trạm kia chua có những tin gì ?? ( Nhưng tin nào là tin mới) trong khi số lượng tin gủi lên Server trong cùng 1 lúc là nhiều,dữ liệu trong CSDL liên tục tăng.=> Truy vấn sẽ khó khăn.

Rất mong được các bác góp ý !!
thanks !

thuyduongcd
15-03-2010, 14:19
Có thể giải quyết vấn đề này nhiều bằng cách:
Thứ nhất, vì mỗi n giây cập nhật thông tin 1 lần nên những tin mới là những tin nằm trong khoản thời gian n giây này (so với thời điểm hiện tại)
Cách thứ 2 là thêm 1 field ẩn chứa thời điểm cập nhật tin lần cuối cùng, khi gửi yêu cầu cập nhật tin thì cũng gửi luôn cái này để căn cứ vào đó mà server sẽ phân biệt tin nào mới.

rootkit
19-03-2010, 10:56
lúc trước tôi mất khá nhiều thời gian tìm hiêu vấn đề này ,xin đưa ra một số ý kiến như sau :

1> có thể viết được bằng Jquery ,php,mysql + XML (không phải đễ đâu bác) .
2> sử dụng kỹ thuật comet (cái này đòi hỏi rất nhiều thứ) ,ta sẽ dùng một tool có sẵn (viết bằng java(nói chung tool này ko viết bằng ngôn ngữ web)) rồi tích hợp vào server sau đó ta viết code để giao tiếp với cái tool này .

shrimp2t
21-03-2010, 21:26
Thank các bac đã góp ý


2> sử dụng kỹ thuật comet (cái này đòi hỏi rất nhiều thứ) ,ta sẽ dùng một tool có sẵn (viết bằng java(nói chung tool này ko viết bằng ngôn ngữ web)) rồi tích hợp vào server sau đó ta viết code để giao tiếp với cái tool này .

Đây là chat trên Web nên chỉ sử dụng các ngôn ngũ liên quan.
Nếu theo cách trên thì có khi còn phức tạp hơn.

Em nghĩ cái này có thể làm được =HTML,PHP,Jquery,MySQL, chỉ mắc mỗi cái thuật toán lấy, cập nhật dự liệu sao cho it nhất thôi mà vẫn chua có cách nào khả quan.

Cách của "thuyduongcd" cung hay đấy nhất là cách thứ 2.