@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 и обрабатывать различные события, такие как установление соединения, получение сообщений, ошибки и закрытие соединения.