2017-11-25 267 views
1

我需要爲我的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

回答

0

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

這對我有用。