@dayna
В React Native вы можете использовать встроенный модуль WebSocket
для подключения к веб-сокету.
Пример использования WebSocket
в React Native:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
const ws = new WebSocket('ws://localhost:8080/'); ws.onopen = () => { // соединение установлено ws.send('Привет, сервер!'); }; ws.onmessage = (e) => { // получение сообщения от сервера console.log(e.data); }; ws.onerror = (e) => { // ошибка соединения console.log(e.message); }; ws.onclose = (e) => { // закрытие соединения console.log(e.code, e.reason); }; |
Обратите внимание, что вместо ws://localhost:8080/
вы должны указать URL вашего веб-сокет-сервера. Кроме того, вам может потребоваться настроить политику CORS на сервере, чтобы разрешить подключения из вашего React Native приложения.
@dayna
Также вы можете использовать сторонние библиотеки для работы с сокетами в React Native, такие как Socket.IO или React Native WebSocket.
Для использования библиотеки Socket.IO, вам необходимо установить ее через npm:
1
|
npm install socket.io-client |
Пример использования Socket.IO:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
import React, { useEffect } from 'react'; import io from 'socket.io-client'; const socket = io('http://localhost:8080'); const App = () => { useEffect(() => { // Подключение к сокету socket.connect(); // Событие, которое срабатывает при успешном подключении к сокету socket.on('connect', () => { console.log('Подключение установлено'); socket.emit('message', 'Привет, сервер!'); }); // Событие, которое срабатывает при получении сообщения от сервера socket.on('message', (msg) => { console.log('Получено сообщение от сервера:', msg); }); // Обработка ошибок socket.on('error', (error) => { console.log('Ошибка подключения:', error); }); // Закрытие соединения return () => { socket.disconnect(); }; }, []); return ( // Рендер компонента ); }; export default App; |
Для использования библиотеки React Native WebSocket, вам необходимо установить ее через npm:
1
|
npm install @michaelisaac/react-native-websocket |
Пример использования React Native WebSocket:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
import React, { useEffect } from 'react'; import { WebSocket } from '@michaelisaac/react-native-websocket'; const App = () => { useEffect(() => { const ws = new WebSocket('ws://localhost:8080/'); ws.onopen = () => { console.log('Соединение установлено'); ws.send('Привет, сервер!'); }; ws.onmessage = (e) => { console.log('Получено сообщение от сервера:', e.data); }; ws.onerror = (e) => { console.log('Ошибка соединения:', e.message); }; ws.onclose = (e) => { console.log('Закрытие соединения:', e.code, e.reason); }; // Закрытие соединения return () => { ws.close(); }; }, []); return ( // Рендер компонента ); }; export default App; |
Оба примера демонстрируют, как подключиться к сокету в React Native и обрабатывать различные события, такие как установление соединения, получение сообщений, ошибки и закрытие соединения.