Tôi có tiện ích mở rộng web của google chrome cần giao tiếp với ứng dụng máy tính để bàn Qt - nhưng làm cách nào?Cách kết nối tiện ích mở rộng web chrome với máy chủ cục bộ?
Có tin nhắn gốc của Chrome, nhưng vì tôi muốn hỗ trợ nhiều trình duyệt/HĐH, đây sẽ là quá nhiều nỗ lực vì nó chỉ dành cho Chrome.
Sau đó, có this bài đăng đề xuất thiết lập máy chủ cục bộ. Đây là những gì tôi đã làm, xem dưới đây.
tôi đã thiết lập một máy chủ với Qt với QTcpServer
sử dụng QTcpSocket
's trên 127.0.0.1 (localhost). Tuy nhiên, tiện ích mở rộng web không thể nghe ổ cắm, chỉ các ứng dụng chrome can. Có 2 giải pháp khả thi trong đầu tôi:
Như một giải pháp, tôi có thể viết một ứng dụng chrome nhỏ. Ứng dụng Qt sẽ nói chuyện với tiện ích chrome thông qua ứng dụng chrome (ổ cắm hỗ trợ ứng dụng chrome). Nhưng tôi nghĩ phương pháp này vụng về và không hoàn toàn thanh lịch.
Mặt khác, tôi đã đọc khoảng
socket.io
. Ý tưởng là: Cuộc đàm phán mở rộng chrome quahttp requests
với các cuộc trò chuyện socket.io và socket.io qua ổ cắm bằng ứng dụng dành cho máy tính để bàn của tôi. Đây có phải là giải pháp khả thi không?
Tôi cũng đã thử kết nối trực tiếp với máy chủ cục bộ bằng mã sau. Trong ứng dụng máy chủ Qt của tôi, tôi thấy rằng có một kết nối mới. Nhưng tôi không thể có được một phản ứng nào cả (hoặc mã Qt của tôi là sai hoặc đó là vì phần mở rộng không thể nghe socket?)
var xhr = new XMLHttpRequest();
xhr.open("GET", "http://localhost:12345", true);
xhr.onreadystatechange = function() {
if (xhr.readyState == 4) {
alert('This is the response from the server: '+ xhr.responseText);
}
Nếu bạn muốn hỗ trợ nhiều trình duyệt/HĐH, tại sao bạn vẫn sử dụng tiện ích mở rộng google chrome? Nó chỉ dành cho chrome. –
vì đó là cách dễ nhất để bắt đầu và lõi (js, html, css) phải khá phổ biến ... – user2366975