2010-09-08 9 views
5

Tôi muốn phát triển một ứng dụng máy tính để bàn với Java (tôi đã có kiến ​​thức rất cơ bản về Java). Nó sẽ chạy trên máy tính của khách hàng và sẽ lấy thông tin từ máy chủ được lưu trữ trên internet. Tôi có thể thiết lập một nhiệm vụ lịch trình để kết nối với máy chủ mỗi 2 phút và kiểm tra bất kỳ cập nhật/thay đổi nhưng tôi không nghĩ rằng đó là một ý tưởng rất tốt. Có cách nào để cho khách hàng biết về những thay đổi không? Ví dụ: khi mọi máy chủ thay đổi sẽ gửi thông báo cho khách hàng để cập nhật? Máy chủ có thể là một công nghệ khác, ví dụ: Javalàm thế nào để thông báo cho khách hàng máy tính để bàn java về những thay đổi từ máy chủ?

bất kỳ trợ giúp nào sẽ được đánh giá cao, cảm ơn một lần nữa!

Trả lời

1

Bạn có thể sử dụng JMS để gửi tin nhắn từ máy chủ của bạn đến các ứng dụng của bạn nếu bạn sử dụng một máy chủ Java.

Hoặc bạn có thể sử dụng ứng dụng Comet để đẩy thư đến máy khách qua HTTP. Một cách thứ ba là tạo hệ thống push của riêng bạn, nơi khách hàng của bạn kết nối với máy chủ để cung cấp một số thông tin về cách liên lạc, và với mẫu Observer/Observable mà bạn thông báo cho mỗi khách hàng tại mỗi lần sửa đổi.


Resources:

+0

+1 cho JMS chứ không phải Jon Skeet – willcodejavaforfood

5

Đẩy - khách hàng sẽ luôn luôn được ha thứ - phần lớn là do tường lửa. Việc kéo khách hàng từ máy chủ (với HTTP) có nhiều khả năng hoạt động trong hầu hết các trường hợp.

Hiện tại, bạn hiện đang bỏ phiếu hai phút một lần. Điều đó có thể phù hợp - hoặc có thể tốt hơn nếu bạn làm điều đó hiếm hơn nhiều (mỗi ngày một lần, giả sử) tùy thuộc vào những gì bạn đang cập nhật. Nếu đó là bản cập nhật cho phần mềm máy khách, các bản cập nhật hiếm hoi là tốt. Nếu đó là cập nhật cho một cuộc trò chuyện, thậm chí hai phút là quá dài - trong trường hợp đó bạn nên xem xét kỹ thuật số comet/long polling. (Có nhiều công nghệ khác nhau để thực hiện việc bỏ phiếu dài, bạn không phải sử dụng bất kỳ thứ gì cụ thể - đó là lý do tại sao tôi mô tả nó như một kỹ thuật thay vì bất kỳ thứ gì khác.)