2016-05-29 2 views
2

Я создаю простой сервер socket.io и реагирую на собственный проект и тестирую, но socket.io на React Native не работает вообще. Я печатал «socket.io-client» на консоли, и он хорошо загружен, и я сделал простой HTML-файл с использованием socket.io, он работает, но только React Native не работает. Я использую React native 0.26.2 и socket.io 1.4.6.React Native с socket.io не работает

это мой код сервера:

"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'); 
}); 

и это р-н Код:

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 
     }; 
    } 
    ... 
} 

, как я слышал, используя Реагировать родной с socket.io вызывает Аякса длинный опрос вместо WebSocket, так Я добавил трюк «пользовательский агент». независимо от того, работает он или нет, даже соединение не установлено, но если я пытаюсь использовать браузер, он работает хорошо. мне будет очень признательно, что скажите мне, что мне делать.

+0

также я создал сервер websocket с модулем «ws» и сменил код на использование websocket напрямую (официально поддерживаемый response-native), либо не работает. – modernator

+0

Я только что проверил iOS, и это сработало. поэтому я тестировал на своем устройстве Android (не виртуальное устройство), это не сработало. Я думаю, что есть что-то. любой совет будет оценен. – modernator

ответ

0

Я решил это, заменив другой модуль websocket. Socket.IO не работает на Android, и, как мне сказал кто-то, Socket.io использует внутренние модули узла внутри, поэтому он не должен работать после приложения для сборки.

Смежные вопросы