Я успешно установил соединение.И мое расширение успешно получает текущий URL.Но по какой-то причине я не могу получить URL на моем сервере Python.
Вот HTML-код моего расширения:
<html>
<head>
<title>Getting Started Extension's Popup</title>
<style>
body {
font-family: "Segoe UI", "Lucida Grande", Tahoma, sans-serif;
font-size: 100%;
}
#status {
/* avoid an excessively wide status text */
white-space: pre;
text-overflow: ellipsis;
overflow: hidden;
max-width: 400px;
}
</style>
<script src="jquery.min.js"></script>
</head>
<body>
<div id="url">url</div>
<input type="button" id="getUrl" value="get url"/>
<input type="text" id="output" />
<script type="text/javascript" src="Analyze.js"></script>
</body>
</html>`
Вот JavaScript для моего расширения:
var urlButton = document.getElementById('getUrl');
var output = document.getElementById('output');
var url;
var data;
websocket = new WebSocket('ws://localhost:12345');
function encode_utf8(s) {
return unescape(encodeURIComponent(s));
}
urlButton.onclick = function() {
chrome.tabs.query({active: true,
currentWindow: true}, function (tabs) {
url = tabs[0].url.toString();
data = encode_utf8(url)
console.log(data);
websocket.send(data);
});
});
А вот соответствующий код Python:
import socket
HOST = '127.0.0.1'
PORT = 12345
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.bind((HOST, PORT))
s.listen(1)
def socket():
conn1, addr1 = s.accept()
while 1:
try:
data = conn1.recv(1024)
except socket.error:
print('error')
if data:
print(data.decode('utf-8'))
Когда я открываю расширение Chrome, соединение устанавливается, и сервер Python печатает такую информацию:
GET / HTTP/1.1
Host: localhost:12345
Connection: Upgrade
Pragma: no-cache
Cache-Control: no-cache
Upgrade: websocket
Origin: chrome-extension: etc....
Но когда я нажимаю кнопку «получить URL» из моего расширения Chrome.Когда я проверяю свой javascript, выводится правильный URL-адрес, но на конце python ничего не происходит.
Моя цель в этом состоит в том, чтобы расширение chrome отправило URL-адрес на сервер python, а затем сервер python отправитназад, и это будет отображаться в HTML.
Если у вас есть идеи, почему URL не отправляется или, возможно, не собирается?пожалуйста, дай мне знать!Спасибо, что нашли время помочь