Tôi có một ứng dụng web đang chạy với sự hỗ trợ cho một số phần cứng cụ thể. Điều này đạt được trong các bước sau:Hỗ trợ phần cứng từ một ứng dụng web
- Người dùng chạy trình cài đặt nhỏ đặt tệp java (và một số khác người khác) trên máy khách. Phần chính là một lọ được gọi là "hardwareManager"
- Ứng dụng web lượt truy cập của người dùng. Ứng dụng web chạy một applet java, do một tệp .java.policy được đặt trong khi cài đặt, có sự cho phép để tương tác với máy khách bên ngoài hộp cát trình duyệt.
- Applet kiểm tra để đảm bảo phần cứngManager đang chạy, và nếu không chạy lệnh để khởi động nó.
- Người dùng tương tác với ứng dụng web gửi lệnh đến applet qua javascript. Các applet sau đó viết lệnh vào một tập tin văn bản trên máy khách. Tệp văn bản được theo dõi liên tục bởi Bộ quản lý phần cứng chạy bất kỳ lệnh nào mà nó đọc.
Tác phẩm này, nhưng có vẻ khó khăn. Tôi có một vài ý tưởng về cách cải thiện nó, nhưng tôi không biết cái nào, nếu có, thậm chí còn đáng để thử.
Sẽ tốt hơn nếu bạn thiết lập phần cứngManager làm một socketServer và có applet kết nối trực tiếp với nó, thay vì duyệt qua các tệp văn bản? Điều đó thậm chí có thể?
Có cách nào để loại bỏ hoàn toàn applet và có javascript nói chuyện trực tiếp với phần cứngManager không? Có thể bằng cách viết phần cứngManager để trở thành một máy chủ http địa phương? Cổng nào sẽ chạy? Làm hạn chế javascript xss phù hợp ở đây một nơi nào đó?
Nếu bạn làm cho phần cứngManager chấp nhận yêu cầu HTTP, chắc chắn bạn có thể được truy cập trực tiếp bởi JS, thậm chí tốt hơn bạn có thể thiết kế nó để thực hiện các lệnh như một dịch vụ web REST. XSS: không phải là vấn đề ở đây. Bạn sẽ cần tất nhiên để có phần cứngManager chạy cho nó để chấp nhận các lệnh, và một cách để biết trên cổng nào. – Viruzzo
thêm vào câu trả lời của @Viruzzu, bạn có thể sử dụng [Jetty] (http://docs.codehaus.org/display/JETTY/Embedding+Jetty) cho phép dễ dàng nhúng một máy chủ http bên trong một ứng dụng java. sau đó bạn chỉ cần chuyển mã javascript đến localhost để tương tác với phần cứng Viruto của bộ vi xử lý hardwareManager –
, hãy làm cho câu trả lời đó để tôi có thể bỏ phiếu cho nó. – pkh