2017-08-08 8 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を使って自分のhtmlリクエストとsocket.ioをwebsocket接続に使っていました。

+0

なぜ新しい通常のWS接続を作成し、アップグレードしていませんか?申し訳ありませんが、私は本当にその質問を理解していません。たぶんあなたはあなたが言う部分を拡張することができます: "今、私はそれを実際のウェブサイトに接続する必要があります" – Borjante

+0

あなたはこの質問をちょっとだけ聞けます –

+0

@Borjante私はchoiseを持っていない、ほとんどのサーバーと悲しげに一番最上の接続をアップグレードする –

答えて

0

[OK]をクリックします。 ちょうど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); 
    } 
関連する問題