Клиент WebSocket может подключаться только к моему серверу на локальном хосте

#python #websocket

#python #websocket

Вопрос:

Я играл с websockets, и я создал небольшой клиент, который я разместил на веб-сайте. Когда я пытаюсь подключиться с веб-сайта (со своего компьютера) к простому серверу Python на том же компьютере, он работает нормально, подключаясь к localhost. Однако я не могу подключиться с другого компьютера. Я видел эту проблему в нескольких вопросах здесь, но никаких решений. Согласно этому веб-сайту, проблема, вероятно, не может быть решена.

Альтернативой является socket.io Очевидно, как я могу использовать это для клиента на веб-хостинге? Сокет GitHub.страница ввода-вывода довольно расплывчата при установке, по крайней мере, для кого-то вроде меня.

Ну, простой пример, который работает локально, будет;

 # Python server
import socket

sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.bind(("", 12345))
sock.listen(5)

newsock, addr = sock.accept()

print "Connection"

// Client
<script type = "text/javascript">

window.onload = function()
{

    // Works
    var sock = new WebSocket("ws://127.0.0.1:12345");

    // Doesn't work
    var sock = new WebSocket("ws://194.237.*.*:12345");
}
</script>
  

Комментарии:

1. Не могли бы вы привести минимальный [нерабочий] пример?

2. Я думаю, вам нужно будет перейти sock.bind(("", 12345)) на sock.bind(("194.237.foo.bar", 12345)) .

Ответ №1:

Вы пробовали привязку к 0.0.0.0 ?

 sock.bind(("0.0.0.0", 12345))
  

Ответ №2:

Для меня проблема заключалась в том, что я не открыл брандмауэр для входящих подключений к python.