簡體   English   中英

從Hubot向本地Rails應用程序發送HTTP請求時出現EHOSTUNREACH錯誤

[英]EHOSTUNREACH error while sending HTTP request from Hubot to Rails app locally

我正在開發一個Slack bot(使用Hubot )以及一個Rails應用程序,它將接收來自它的HTTP請求並相應地處理它們。 基本上,我想要做的高級步驟是這樣的:

  1. 一個松弛的用戶向機器人發送一個觸發詞(假設觸發器是“再見”)。
  2. Hubot選擇觸發器,然后向Rails應用程序發送請求。
  3. Rails應用程序將Slack用戶標記為不在辦公室。

我似乎遇到了某種路由問題,因為當我嘗試在兩個應用程序啟動時執行此流程時,我收到EHOSTUNREACH錯誤( rails s為Rails和./bin/hubot --adapter slack for Hubot)。 我猜測Hubot根本無法訪問Rails應用程序。 我在這里錯過了什么嗎? 我需要使用什么URL來使這些應用程序相互發送請求?

我也嘗試用localhost:3000交換127.0.0.1:3000 ,但結果保持不變。

Hubot代碼

module.exports = (robot) ->
  robot.respond /bye/i, (res) ->
    res.reply('Later alligator')
    robot.logger.info 'Will proceed to clock out user'

    data = JSON.stringify({
      slack_user_id: res.message.user.id
    })
    robot.http("127.0.0.1:3000/")
      .header('Content-Type', 'application/json')
      .post(data) (err, resp, body) ->
        if err
          robot.logger.info "Encountered an error: #{err}"
        else
          robot.logger.info 'Successfully sent HTTP request to Rails app'

當我向bot發送觸發詞時記錄結果

INFO Will proceed to clock out user
INFO Encountered an error: Error: connect EHOSTUNREACH 0.0.11.184:80 - Local (192.168.91.168:60029)

Rails服務器日志 (它肯定是端口3000)

* Listening on tcp://localhost:3000

將請求更改為robot.http("http://localhost:3000")確保您在開始時擁有協議。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM