WebSocket客户端只能在本地主机连接我的服务器

0 投票
2 回答
3191 浏览
提问于 2025-04-17 03:49

我最近在玩 websockets,做了一个小客户端并把它放在了一个网站上。当我从这个网站(也就是我的电脑)连接到同一台电脑上的一个简单 Python 服务器时,一切都很顺利,连接到 localhost(本地地址)。但是,我无法从另一台电脑连接过来。我在这里看到过很多人问这个问题,但没有找到解决办法。根据这个网站的说法,这个问题可能没法解决。

另外一个选择是使用 socket.io,听说这个不错,我该如何在一个网络主机上使用它作为客户端呢?GitHub 上的 socket.io 页面对安装的说明有点模糊,至少对我这样的初学者来说。

这里有一个简单的例子,可以在本地运行:

# 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>

2 个回答

0

对我来说,问题在于我没有为Python打开防火墙,允许外部连接进来。

4

你试过绑定到 0.0.0.0 吗?

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

撰写回答