在websocket uri中传递参数react-native不起作用

问题描述:

我需要为我的react-native应用程序实现websocket连接。
我的问题是我总是得到:在websocket uri中传递参数react-native不起作用

无法设置 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

我找到了答案。只需使用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); 

这对我有用。