私は単純なsocket.ioサーバーを作成し、ネイティブプロジェクトに反応してテストしますが、React Nativeのsocket.ioはまったく動作しません。 コンソールに "socket.io-client"と表示され、うまく読み込まれました。socket.ioを使用して単純なHTMLファイルを作成しましたが、動作しますが、React Nativeだけが動作しません。 私はReactネイティブ0.26.2とsocket.io 1.4.6を使用しています。だから、私は代わりのWebSocketのAJAXロングポーリングを起こしsocket.ioとネイティブリアクト使用して、聞いてReact Native with socket.io
import React, { Component } from 'react';
import { AppRegistry, StyleSheet, Text, TextInput, TouchableHighlight, View } from 'react-native';
import "./userAgent"; //window.navigator.userAgent = "react-native";
const io = require('socket.io-client/socket.io');
class SocketChat extends Component {
constructor(props) {
super(props);
this.socket = io('localhost:3000', { jsonp: false });
this.state = {
text: null
};
}
...
}
:
が、これは私のサーバーのコードです:
"strict mode";
const express = require('express');
const app = express();
const http = require('http').Server(app);
const io = require('socket.io')(http);
io.on('connection', (socket) => {
console.log('user connected');
});
http.listen(3000,() => {
console.log('server started on 3000');
});
// web testing
app.get('/', (req, res, next) => {
res.sendFile(__dirname + '/index.html');
});
、これはRNコードです私は 'ユーザーエージェント'のトリックを追加しました。それが動作しているかどうか、接続さえ確立されていませんが、ブラウザで試してみるとうまくいきます。私は何をすべきか教えてくれてとても感謝しています。
私は 'ws'モジュールでwebsocketサーバーを作成し、websocketを直接(正式に反応ネイティブでサポートされています)使用するようにコードを変更します。 – modernator
iOSでチェックしたところ、うまくいきました。だから私は私のアンドロイドデバイス(仮想デバイスではない)でテストしたが、うまくいかなかった。私は何か問題があると思う。どんなアドバイスも感謝します。 – modernator