Reactjs Can';t连接到SOC

Reactjs Can';t连接到SOC,reactjs,express,twilio,Reactjs,Express,Twilio,当我试图通过节点连接到twilio并做出反应时,我遇到了一个奇怪的Twillio错误。我想不出怎么解决这个问题。这似乎发生在我的应用程序的服务器端。我已经根据网站上的说明生成了令牌 index.js:1437 Error: Can't connect to twilsock at Upstream.send (upstream.js:245) at TwilsockClient.post (client.js:280) at network.js:

当我试图通过节点连接到twilio并做出反应时,我遇到了一个奇怪的Twillio错误。我想不出怎么解决这个问题。这似乎发生在我的应用程序的服务器端。我已经根据网站上的说明生成了令牌

index.js:1437 Error: Can't connect to twilsock
        at Upstream.send (upstream.js:245)
        at TwilsockClient.post (client.js:280)
        at network.js:176
        at Retrier.<anonymous> (network.js:114)
        at Retrier.emit (events.js:136)
        at Retrier.attempt (retrier.js:56)
        at retrier.js:111
这是服务器

app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
app.use(pino);
app.use(cors());
const sendTokenResponse = (token, res) => {
  res.set('Content-Type', 'application/json');
  res.send(
    JSON.stringify({
      token: token.toJwt()
    })
  );
};

app.get('/api/greeting', (req, res) => {
  const name = req.query.name || 'World';
  res.setHeader('Content-Type', 'application/json');
  res.send(JSON.stringify({ greeting: `Hello ${name}!` }));
});

app.get('/chat/token', (req, res) => {
  const identity = req.query.identity;
  const token = chatToken(identity, config);
  sendTokenResponse(token, res);
});

app.post('/chat/token', (req, res) => {
  console.log('this is firing on the backend')
  const identity = req.query.identity;
  const token = new AccessToken('AC821b3924fcf9577a0eb017c4b21b----', "SK8c95cf6ba0e4a0ec5499d12ae4d----", "o4x7JC9xTEAsZC06SVsnfb2xZU9n----");
  const chatGrant = new ChatGrant({
  serviceSid:"ISdd3f2b55594f45038ac88d84b78e----" ,
});
  token.addGrant(chatGrant);
  token.identity = identity;
  sendTokenResponse(token, res);
});

app.get('/video/token', (req, res) => {
  const identity = req.query.identity;
  const room = req.query.room;
  const token = videoToken(identity, room, config);
  sendTokenResponse(token, res);
});

app.post('/video/token', (req, res) => {
  const identity = req.body.identity;
  const room = req.body.room;
  const token = videoToken(identity, room, config);
  sendTokenResponse(token, res);
});

app.listen(3001, () =>
  console.log('Express server is running on localhost:3001')
);

最新版本的express不再使用bodyparser.json,它现在是express的一部分,请尝试使用:

 express(express.json())
而不是

express(bodyParser.json())


如果您使用的是express,最简单的方法就是使用cors模块

首先,使用下一个代码安装它:

npm install cors
接下来,将cors中间件放入express应用程序:

app.use(cors())

如果您想了解更多信息,请阅读这里的cors模块文档


这实际上看起来像是我的代码如果这些解决方案都不起作用(它们对我来说不起作用),那么下面的一些可能会对我有所帮助,从而使错误消失:

我遇到了这个问题,因为我在通过rest API获取令牌时错误地使用了SID。我确保SID正确无误。

嘿,伙计!!!很高兴见到你。现在我得到了这个错误:index.js:1437错误:无法连接到twilsock上的Upstream.send(Upstream.js:245)上的TwilsockClient.post(client.js:280)上的network.js:176上的twilsock。(network.js:114)在Retrier.emit(events.js:136)在Retrier.true(Retrier.js:56)在Retrier.js:111所以这是在客户端,对吗?您是否在服务器上正确设置了api密钥和聊天服务sid?你能拿一个生成的令牌并运行它,看看它是否正确。jwt.io说我的令牌无效,你可以在上面看到我的服务器代码,但我认为密钥设置正确。你能给我发一封令牌电子邮件吗philnash@twilio.com我来看看。
app.use(cors())