在reactocket uri上传递参数react-native不起作用

时间:2017-11-25 13:19:08

标签: android facebook react-native react-native-android

我需要为我的react-native应用程序实现websocket连接 我的问题是我总是得到:

  

无法设定   WS://www.needseek.com:31337 partyId =" a3e75250-d1a3-11e7-9116-a7b8f75cfbc6"&安培; sessionToken =" eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJwYXJ0eUlkIjoiYTNlNzUyNTAtZDFhMy0xMWU3LTkxMTYtYTdiOGY3NWNmYmM2Iiwibm9uY2UiOiIxNTExNTkxNTQyNDE3MDAiLCJpYXQiOjE1MTE1OTE1NDJ9.HVfHRlXbcUZgkTFfL42YGd0LGtCUjnJuQ5ju3S1alOk"   作为默认原始标题。

这是我使用的代码:

let wsUrl = 'ws://www.needseek.com:31337?partyId="' + user.profile.partyId + '"&sessionToken="'+ user.sessionToken + '"';
console.log( 'Websocket Url', wsUrl );

var ws = new WebSocket( wsUrl );

ws.onopen = () => {
  // connection opened
  ws.send('Connection open..');
  console.log('Connection open..');
};

ws.onmessage = (e) => {
  // a message was received
  console.log(e.data);
};

ws.onerror = (e) => {
  // an error occurred
  console.log(e.message);
};

ws.onclose = (e) => {
  // connection closed
  console.log(e.code, e.reason);
};

另外,我阅读了有关实现websocket的反应原生文档 - > https://facebook.github.io/react-native/docs/network.html

1 个答案:

答案 0 :(得分:2)

我找到了答案。只需使用encodeURI()语法,然后将websocket url传递给WebSocket实例。

let wsUrl = encodeURI('ws://www.needseek.com:31337?partyId="' + user.profile.partyId + '"&sessionToken="'+ user.sessionToken + '"');
console.log( 'Websocket Url', wsUrl );

var ws = new WebSocket( wsUrl );

这适合我。