Расширение Chrome отправляет отправку текущего URL на сервер Python с сокетами - PullRequest
0 голосов
/ 19 февраля 2019

Я успешно установил соединение.И мое расширение успешно получает текущий 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 не отправляется или, возможно, не собирается?пожалуйста, дай мне знать!Спасибо, что нашли время помочь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...