Subscribe Us

Novos Posts

Como criar um chat com react native e socket.io


 Para criar um chat em tempo real com React Native e Socket.IO, siga os passos abaixo:


1. Configuração inicial:

   - Crie um novo projeto React Native usando o comando `npx react-native init ChatApp`.

   - Instale o pacote Socket.IO para React Native usando o comando `npm install socket.io-client`.


2. Criação do servidor Socket.IO:

   - Crie um arquivo `server.js` no diretório raiz do seu projeto.

   - Instale o pacote Socket.IO para Node.js usando o comando `npm install socket.io`.

   - No arquivo `server.js`, escreva o código para configurar e iniciar o servidor Socket.IO:


```javascript

	

const app = require('express')();

const http = require('http').createServer(app);

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


io.on('connection', (socket) => {

  console.log('Usuário conectado');


  // Lógica para lidar com as mensagens recebidas

  socket.on('chat message', (msg) => {

    console.log('Mensagem recebida:', msg);

    io.emit('chat message', msg); // Envia a mensagem para todos os usuários conectados

  });


  // Lógica para lidar com a desconexão de usuários

  socket.on('disconnect', () => {

    console.log('Usuário desconectado');

  });

});


http.listen(3000, () => {

  console.log('Servidor Socket.IO rodando na porta 3000');

});

```


3. Configuração do cliente React Native:

   - No arquivo `App.js`, substitua o conteúdo existente pelo código a seguir:


```javascript

	

import React, { useEffect, useState } from 'react';

import { View, Text, TextInput, Button, FlatList } from 'react-native';

import io from 'socket.io-client';


const socket = io('http://localhost:3000'); // Altere o endereço para o IP da sua máquina


const App = () => {

  const [messages, setMessages] = useState([]);

  const [inputText, setInputText] = useState('');


  useEffect(() => {

    // Configura o ouvinte para receber as mensagens do servidor

    socket.on('chat message', (msg) => {

      setMessages((prevMessages) => [...prevMessages, msg]);

    });

  }, []);


  const handleSendMessage = () => {

    socket.emit('chat message', inputText); // Envia a mensagem para o servidor

    setInputText(''); // Limpa o campo de entrada de texto

  };


  return (

    <View style={{ flex: 1, padding: 16 }}>

      <FlatList

        data={messages}

        renderItem={({ item }) => (

          <Text style={{ marginBottom: 8 }}>{item}</Text>

        )}

        keyExtractor={(item, index) => index.toString()}

      />

      <TextInput

        value={inputText}

        onChangeText={(text) => setInputText(text)}

        placeholder="Digite sua mensagem"

        style={{ marginBottom: 8 }}

      />

      <Button title="Enviar" onPress={handleSendMessage} />

    </View>

  );

};


export default App;

```


4. Execução do servidor e do aplicativo:

   - No terminal, navegue até o diretório raiz do projeto e execute o comando `node server.js` para iniciar o servidor Socket.IO.

   - Abra outro terminal, navegue até o diretório raiz do projeto e execute o comando `npx react-native run-android` (ou `npx react-native run-ios` para iOS) para iniciar o aplicativo em um emulador ou dispositivo físico.


Agora você terá um chat em tempo real funcionando com React Native e Socket.IO. Quando você enviar uma mensagem no aplicativo, ela será enviada para o servidor Socket.IO e, em seguida, transmitida para todos os outros usuários conectados.


Certifique-se de ajustar o endereço do servidor Socket.IO para o IP correto da sua máquina, especialmente se você estiver testando em um dispositivo físico.


Lembre-se de que este é um exemplo básico para ajudá-lo a começar. Você pode aprimorar e personalizar o chat de acordo com suas necessidades, como adicionar recursos de autenticação, armazenamento de mensagens no banco de dados, entre outros.

Nenhum comentário