2016-05-13 64 views
2

我試圖從Slack連接到RTM API時遇到最奇怪的錯誤。404上websocket連接到Slack的RTM API

我在節點中實現了一個簡單的bot,並且我使用socket.io來處理web套接字連接。然而,它總是拋出錯誤{ [Error: xhr poll error] type: 'TransportError', description: 404 } 我的代碼如下所示:

requester.GET({target: 'https://slack.com/api/rtm.start'}, [{key: 'token', value: config.token}], function(data) { 
    data = JSON.parse(data) 
    if (data.ok) { 
     let socket = require('socket.io-client')(data.url) 
     socket.on('connect', function(){}) 
     socket.on('event', function(data){}) 
     socket.on('disconnect', function(){}) 
     socket.on('connect_error', function(err) { 
      console.log(err) 
     }) 
    } else { 
     console.log(data) 
    } 
}) 

requester是我寫我自己,處理簡單的HTTP調用,就像在這裏得到的文件。 問題是,我在使用Slack返回的URL時,我爲什麼要得到404代碼?我究竟做錯了什麼 ?

回答

2

我不認爲socket.io-client做你想做的事...我相信這是一個客戶端與一個服務器對話使用socket.io(Slack不是)。我相信socket.io-client正試圖向URL發出HTTP請求。您應該特別使用WebSocket客戶端。也許試試ws庫?