初探 ngrok 神器
¶初探 ngrok 神器
¶安裝
用 hoem brew 安裝,可以將執行檔當作全域指令使用。
brew install --cask ngrok |
安裝完成
注意
不要到官網下載。
但是要去申請一個帳號。
¶使用
執行 ngrok,用 http 接到 port 3000。
ngrok http 3000 |
¶功能介紹
ngrok 的在做的事情是叫做HTTP tunneling
¶需求之一
在實作 fb 聊天機器人時, facebook 會需要你提供一串網址
來讓 facebook 的伺服器丟聊天室的訊息給你
¶問題點
但是我們在本地端開的伺服器,只能產生本地端的網址(localhost
)
一般情況,要能建立一個能讓網路上任何人都連的到的網址
你會需要去買一個網域(像是 www.goodidea.com)
並且將你的 IP 跟他做綁定
但是因為那樣很麻煩,我們這裡使用 ngrok 的服務
¶ngrok 幫我們做了什麼
ngrok 在做的事情是,他們在自己的公司裡有買一個域名(ngrok.com
)
你使用 ngrok 的服務時,他會自動幫你產生一段臨時的網址給你用
(xxxx.ngrok.com
)
這時候 facebook 就可以用這個臨時產生的網址來傳送訊息了
一但 ngrok 的伺服器收到 facebook 丟的訊息
他就會把這個訊息原封不動的丟回來給你,就好像是你的伺服器是直接接收到的一樣
(關於 ngrok 的伺服器是怎麼找到你家的電腦的)
(有興趣可以去找 HTTP、IP 的文章來閱讀)
¶開一個簡易的本地 web server
新版的 Macbook pro (就是 M1 pro) 能用的方式舉例如下
python3 -m http.server |
¶替代方案
在 github 上發現有許多 ngrok 的替代方案[1] 其中也有放在 npm 上面的專案,可以直接下指定啟動,在此舉其中一個例子
npx localtunnel --port 8000 |
發表於