2017-08-08 55 views
0

所以我目前正在使用React-Native開發一個應用程序,並且我必須實現WebSocket。 現在我試圖將我的應用程序連接到Mattermost。對於ws,我們必須從html獲取請求開始,這將被升級爲ws請求。 例子:React-Native上的連接升級

URL: https://URL/api/v3/users/websocket 
Méthod : GET 
Adress : 10.10.10.10:8080 
Code d’état : 200 

Response (39 o) 
Server "nginx" 
Date "Tue, 08 Aug 2017 12:33:21 GMT" 
Connection "upgrade" 
Upgrade "websocket" 
Sec-WebSocket-Accept "vG2CYVx3/p+6ei/8e5fGMN8qq7A=" 

Request's header (769 o)  
Host "URL" 
User-Agent "Mozilla/5.0 (Windows NT 6.1; … Gecko/20100101 Firefox/54.0" 
Accept "text/html,application/xhtml+x…lication/xml;q=0.9,*/*;q=0.8" 
Accept-Language "fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3" 
Accept-Encoding "gzip, deflate, br" 
Sec-WebSocket-Version "13" 
Origin "URL" 
Sec-WebSocket-Extensions "permessage-deflate" 
Sec-WebSocket-Key "HsX9INf0fr7x0cQAglMyjg==" 
Cookie "MMAUTHTOKEN=7xaaaaaaaaahezhatnwxwih;" 
Connection "keep-alive, Upgrade" 
Upgrade "websocket" 

所以我的問題是如何做反應的升級聯接,並用它來製作一個WSS連接。

目前,我使用axios使我的websocket連接的html請求和socket.io。

+0

爲什麼要升級,而不是創建一個新的普通WS連接?我很抱歉,但我真的不明白這個問題。也許你可以擴展你說的部分:「但現在我必須將它連接到真正的網站」 – Borjante

+0

你可以這個問題多一點 –

+0

@Borjante我沒有選擇,我必須將我的應用程序連接到Mattermost服務器,並可悲地matermost升級連接 –

回答

0

好的,找到了解決方案。 剛剛下載this驅動程序,它包括在我的應用程序:

import Websocket from "../Applications/websocket_client" 

export default class SecWatt extends Component { 
    constructor(props){ 
     super(props); 
    } 

    componentDidMount(){ 
     webs = new Websocket(); 
     webs.setEventCallback(printEvent); 
     webs.initialize("wss://*MattermostURL*/api/v3/users/websocket" , "YourToken"); 
    } 
    render() 
    { 
     return(
      <View> 
      </View> 
     ); 
    }  
} 

function printEvent(msg){ 
     console.log(msg); 
    }