2017-12-07 8 views
1

ソケットを使用してバックエンド(node.jsサーバー)をフロントエンド(ネイティブアプリケーションに対応)に接続しようとしています。 しかし、問題はコードが決してio.on( 'connection'、...)に入り込まないことです。 、つまりソケット接続が確立されていません。wsを使用してReact nativeおよびNode.jsサーバーでソケットが動作しない

何か助けていただければ幸いです。

これは、クライアント側のコード:

import React, { Component } from 'react'; 
import { 
    Alert, 
    Button, 
    Text, 
    View 
} from 'react-native';  


export default class App extends Component { 

    constructor(props) { 
     super(props); 
     const ws = new WebSocket('ws://localhost:3000'); 
     console.log("This is client side Web socket.") 
     ws.onopen =() => { 
      console.log("Its connected") 
      ws.send('something'); // send a message 
     }; 

    } 
} 

これは、サーバーサイドコード:

var app = require('express')(); 
var http = require('http').Server(app); 
var io = require('socket.io')(http); 

io.on('connection', function(socket){ 
     console.log('a user connected'); 
}); 

http.listen(3000, function(){ 
     console.log('listening on *:3000'); 
}); 

答えて

1

がNPMモジュールsocket.io-clientをインストールし

import React, { 
    Component 
} from 'react'; 
import { 
    Alert, 
    Button, 
    Text, 
    View 
} from 'react-native'; 
import SocketIOClient from 'socket.io-client'; 



export default class App extends Component { 

    constructor(props) { 
    super(props); 
    var ws = SocketIOClient('ws://localhost:3000'); // replace localhost with ip 
    ws.on('connect', function() { 
     console.log("hello"); 
    }); 
    } 
} 
+0

はまだ仕事をdosen'tしてみてください。 –

+0

私のプロジェクトではうまく動作しています –

+0

ああ、私はちょうど問題を発見しました。それはIOSのためにはうまくいくが、Androidではうまく動作しない。 それを手伝ってもらえますか? –

関連する問題