如何允许服务工作者在chrome中使用http

时间:2016-02-26 12:14:17

标签: service-worker

目前我只在我的localhost中测试 ServiceWorker 。 但问题是,如果我在网址中将“localhost”更改为我的计算机名称,则不允许 ServiceWorker 并提供vanilla响应。我认为这是因为不允许服务工作者使用http。

现在,如果我想发送一个带有我的机器名的testlink,我无法做到这一点。我想知道是否有任何方法允许serviceworker进行chrome。

2 个答案:

答案 0 :(得分:0)

由于您要向其他人发送链接,因此您需要通过https将服务器公开给公共互联网。您可以set an https server with an autosigned certificate up但我认为最简单的选择是使用ngrok。安装ngrok后,启动本地服务器:

$ python -m SimpleHTTPServer

然后使用以下命令启动ngrok:

$ ngrok http 8000

鉴于8000是Python服务器启动的端口,您将看到:

ngrok by @inconshreveable                                     (Ctrl+C to quit)

Tunnel Status                 online
Version                       2.0.19/2.0.20
Web Interface                 http://127.0.0.1:4040
Forwarding                    http://27223554.ngrok.io -> localhost:8000
Forwarding                    https://27223554.ngrok.io -> localhost:8000

Connections                   ttl     opn     rt1     rt5     p50     p90
                              0       0       0.00    0.00    0.00    0.00

现在分发https://27223554.ngrok.io作为测试您网站的链接。当你保持ngrok运行并连接到Internet时它会工作。当然,您也可以自己使用链接。

答案 1 :(得分:0)

我不会说这是重复的,因为这更具特异性。

我运行了一些测试,我的建议是你应该为你的客户使用带devtools.serviceWorkers.testing.enabled的Firefox

  • 如果你只使用不会帮助你的ngrok(虽然这是一个了不起的工具)
  • 如果你想使用--unsafety-treat-insecure-origin-as-secure,你应该知道你不能将它用于chrome,它是不受支持的。也许金丝雀或chronium有效,但我没有检查过。