node.js - 与 Slack 的 RTM API 的 websocket 连接出现 404

标签 node.js socket.io slack

当我尝试从 Slack 连接到 RTM API 时,遇到了最奇怪的错误。

我正在 Node 中实现一个简单的机器人,并且使用socket.io来处理网络套接字连接。但是,它总是抛出错误 { [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调用,比如这里的GET。 问题是,我一拿到 Slack 返回的 URL,为什么会收到代码 404 ?我做错了什么?

最佳答案

我不认为 socket.io-client 做你想要的...我相信它是一个客户端与使用 socket.io 的服务器对话( Slack 则不然)。我相信 socket.io-client 正在尝试向该 URL 发出 HTTP 请求。您应该专门使用 WebSocket 客户端。也许尝试ws图书馆?

关于node.js - 与 Slack 的 RTM API 的 websocket 连接出现 404,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37216142/

相关文章:

Node.js fs 模块和 windows 路径

node.js - 在 Mongoose/node 中保存对象(使用默认值)

javascript - NodeJS + Socket.IO : Problem accessing room variables

php - 我们如何在不使用 node.js 的情况下使用 socket.io 在核心 php 中进行实时聊天对话

php - 使用机器人向 Slack 发布消息

javascript - 使用 require/new 在 node.js 中实例化一个新对象

node.js - 如何在express和socket.io中使用sessionID

firebase - Google Firebase 中的自定义身份验证

java - 松弛请求验证 : Can't compute matching request digest using signed secret

javascript - 在 Angular $http 调用中使用 then/catch