【发布时间】:2019-05-21 19:06:04
【问题描述】:
我无法让peerjs 连接到我的服务器。我已经设置了一个运行 peerjs-server 的 GAE 应用程序。服务器运行良好,因为我可以访问 peerjs 端点并获得默认响应 ({"name":"PeerJS Server" etc... )。
但是,我无法从本地文件连接到该服务器。
在我的文件中,我设置了以下代码:
const peer = new Peer(peer_id, {host: '[somepath].appspot.com', path: '/p2p-broker'});
peer.on('open', (id)=>{
console.log('Peer id: ' + id);
});
理论上,peer.on('open', ... 应该会立即触发,对吧?我根本没有任何动作。我在服务器端设置了连接回调,通过终端通知新连接(本地测试!),但在 GAE 版本中根本不会触发。
我尝试通过日志获取我的peerjs 服务器正在运行的端口,并将该信息包含在Peer-constructor 中,但这会立即引发错误(除了不能通过浏览器工作) .
我很确定没有任何连接发生。
我做错了什么?我必须指定哪个端口?
【问题讨论】:
-
这是防火墙问题吗?你用的是什么端口?
-
我在通过控制台启动服务器时发布通过环境变量设置的端口。在那里,它说 8080。但我怀疑这是最终对外界可见的端口。我不知道如何弄清楚这一点。我已经尝试通过我的浏览器访问 peerjs 端点,它的工作原理与描述的一样,但如果我包含端口:
[mypath].appspot.com:8080/p2p-broker,则不会。我也试过在我的 web 应用程序中使用端口80,也不起作用。 -
如何从 GCloud 控制台找到我的应用程序的端口?
-
我不知道如何计算端口。当您说您可以使用浏览器访问端点时,是使用 https: 吗?如果是这样,它在端口 443 上。端口很可能被路由到 docker 实例本身的端口 8080(通过类似 NGINX 的东西)。不确定您是否需要打开其他端口以便您的应用程序可以运行,或者您是否可以只使用端口 443(尽管它需要通过 https 进行通信,这是一种不同的协议)
-
是的,它使用的是 https!我知道我正在监督一个琐碎的细节。它还没有完全解决,但我正在取得进展。暂时关闭https。谢谢!
标签: google-app-engine port peerjs