Использование Socket.io с React Native и не работает - PullRequest
0 голосов
/ 14 октября 2018

Я пытаюсь выполнить домашнее задание, и мне нужна для этого веб-розетка.Я использую реагировать нативный в качестве клиента и node.js для сервера.Тем не менее, даже я попробовал все предложения решения в Интернете, я не мог заставить его работать.

Клиент

import React from 'react';
import { StyleSheet, Text, View } from 'react-native';
import SocketIO from 'socket.io-client';

const connectionConfig = {
  jsonp: false,
  reconnection: true,
  reconnectionDelay: 100,
  reconnectionAttempts: 100000,
  transports: ['websocket'], // you need to explicitly tell it to use websockets
 };

export default class App extends React.Component {

   constructor() {
    super();
    this.socket = SocketIO('http://localhost:3000',connectionConfig);
    this.socket.on('connect', () => {
         console.log('connected to server');
    });
 }

Сервер

const express = require('express');
const http = require('http');
const socketIO = require('socket.io');

const port = 3000;
var app = express();
var server = http.createServer(app);
var io = socketIO(server);

server.listen(port, () => {
    console.log(port, 'is up');
});

io.on('connection', (socket) => {
    console.log('new user connected');

    socket.on('disconnect', () => {
        console.log('User was disconnected');
    });
});

Вот версия, которую я использую,

socket.io: 2.1.1

Экспресс: 4.16.4

socket.io-client: 2.1.1

Экспо: 30.0.1

Я хочу заранее поблагодарить вас за все ваши усилия.

1 Ответ

0 голосов
/ 14 октября 2018

Я нашел решение своей проблемы.

this.socket = SocketIO ('http://localhost:3000',connectionConfig);

Я исключил connectionConfig из вызова функции и изменил способ записи в него локального хоста.

this.socket = SocketIOClient ('http://192.168.xxxx:3000');

Теперь работает как на Android, так и на iOS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...