Мое путешествие по WebSockets было не чем иным, как разочарованием, оказалось, что есть гораздо более простая реализация, чем Action Cable, поставляемый Ruby on Rails.

Что такое socket.io?

Socket.io — это простой пакет узлов, который избавляет от всех хлопот, связанных с созданием и управлением соединениями WebSocket. Я думаю, что это одна из самых удобных для пользователя реализаций, которые я когда-либо встречал, особенно если вы знаете JavaScript.

Как вы тоже можете реализовать простые веб-сокеты

Что ж, для этого требуется немного знаний о том, как работают WebSockets, в основном пользователь может подключаться к базе данных для отправки и получения новых добавленных данных, таких как сообщения из базы данных, при загрузке веб-страницы. После установки пакета узла socket.io с помощью «npm install socket.io» в вашей программе Node.js все, что вам нужно сделать, это добавить следующий скрипт в HTML-код целевой страницы.

<script src="/socket.io/socket.io.js"></script>

Это даст вам доступ к функциям socket.io в вашем файле index.js, чтобы использовать их, как только пользователь загрузит страницу, к которой прикреплен скрипт. Это просто!

Если вы используете Express для своего приложения Node.js, вам необходимо установить этот пакет http.js в свой индексный файл. Затем добавьте следующий код, чтобы настроить сервер socket.io для доступа к функциям.

const app = express()
const server = http.createServer(app)
const io = socketio(server)

Затем с помощью документации socket.io вы добавите функции обратного вызова, которые будут отправлять данные пользователя при подключении, отключении и отправке или получении сообщения, используя следующую структуру.

io.on('connection', (socket) => {
  socket.emit('request', /* */); // emit an event to the socket
  io.emit('broadcast', /* */); // emit an event to all connected sockets
  socket.on('reply', function(){ /* */ }); // listen to the event
});

Желаю удачи в ваших собственных приключениях WebSocket. Я буду занят реализацией этого простого в использовании пакета в своих собственных приложениях!

Ознакомьтесь с моим демо-приложением для чата здесь с репозиторием GitHub с кодом для помощи:



https://github.com/rosspjones13/Node-Chat-App