Создайте веб-приложение для чата с помощью node.js и socket.io (включая обмен личными сообщениями).

Перейти к профилю ашай мандвария

Ашай МандварияЗаблокированоUnblockFollowFollowing

4 ноя

Приложения для обмена сообщениями в настоящее время набирают популярность, существуют буквально тысячи приложений для чата, и они также очень популярны среди пользователей, поскольку обеспечивают индивидуальный подход, соединяя мир воедино.


Логотип Socket.io (веб-сайт Socket.io)

Чтобы создать приложение для чата в реальном времени, должна быть система реального времени для отправки-получения данных. Этого можно добиться с помощью веб-сокетов. Вместо прямого использования API веб-сокетов мы будем использовать socket.io. Мы также будем использовать Express.io с node.js, чтобы упростить создание веб-приложения.

Учебник в основном будет включать внутреннюю часть, и читатели могут использовать любую из доступных библиотек CSS для части пользовательского интерфейса.

Мы будем использовать код Visual Studio для проекта.

— Собрать сервер

npm init

Это запустит новый проект, предоставив всю необходимую информацию. Это будет выглядеть так.

{
  "name": "app",
  "version": "1.0.0",
  "description": "Chat app",
  "main": "server.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "Ashay Mandwarya",
  "license": "ISC"
}

Установите зависимости.

npm install --save socket.io express

Это установит все зависимости, и теперь мы можем начать программировать для сервера.

Создайте два файла в папке проекта как server.js и index.html. Откройте server.js.

В server.js начните со следующего кода:

var express=require('express');

var app=express();

app.get('/',function(req,res){

res.sendFile(__dirname+'/index.html');

});

var server=require('http').Server(app);

io=require('socket.io')(server);

server.listen(3000);

Приведенный выше код устанавливает основы для настройки сервера. Он использует как socket.io, так и экспресс-зависимости для создания сервера. Последняя строка запускает сервер на порту 3000.

Настройка клиента

Это довольно просто. Откройте index.html и начните работу с приведенным ниже кодом.

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<meta http-equiv="X-UA-Compatible" content="ie=edge">

<title>Document</title>

<script src="

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

</head>

<body>

<div id="box">

</div>

<form id="register">

<input type="text" id="name">

<input type="submit" value="Submit">

</form>

<form id="chat">

<input type="text" id="to">

<input type="text" id="message">

<input type="submit">

</form>

<script>

var socket=io.connect();

</script>

</body>

</html>

Строка номер 9 и содержимое последнего тега скрипта — единственное требование, чтобы ваш клиентский чат был готов.

Давайте начнем писать код для обмена сообщениями в реальном времени.


Код для приложения

index.html

  • Строка 25 => Строка 25 — это просто сокращение для document.ready(function(){}). Ниже этого все элементы, кнопки и текстовое поле, связаны с переменной, и если вы раньше использовали события в javascript, вы знаете, насколько это упрощает работу.
  • Строка 30 => Строка 30 действует, когда вы вводите свое имя и нажимаете «Отправить». Это регистрирует пользователя на сервере и генерирует событие. Эти события возникают из socket.io. Вам просто нужно назвать событие и написать функцию, основанную на том, что вы хотите сделать с событием с данными, которые вы хотите отправить другим.
  • Строка 46 => Строка 46 срабатывает, когда мы вводим имя получателя сообщения. Событие называется msg. Он отправляет детали получателя с сообщением на сервер.
  • Строка 53 => Строка 53 отвечает на событие, вызванное сервером, и используется для получения сообщений от других клиентов.

сервер.js

Когда новый клиент подключается к серверу, socket.io вызывает событие, называемое соединением. Событие подключения указывает, что новый клиент был подключен к серверу. Это помогает отслеживать, сколько и что с клиентами.

  • Строка 12 => Эта строка реагирует на событие подключения, и вы можете сделать приветственное сообщение или сообщение об успешном подключении.
  • Строка 14 => Строка 14 отвечает на новое событие, сгенерированное клиентом в строке 30. После получения события он отвечает функцией, которая принимает данные, и функцией обратного вызова. Данные на имя клиента. Он проверяет, является ли имя уникальной записью в объектах пользователей, чтобы отслеживать, а пользователи уникальны. Функция обратного вызова возвращает значение true или false в зависимости от проверки уникальности пользователя. После обратного вызова клиент получает значение true или false и соответственно отвечает.
  • Строка 26 => Строка 26 отвечает на событие msg клиента. Он также имеет функцию, которая принимает данные параметров и функцию обратного вызова. Здесь функция обратного вызова предназначена только для отправки данных обратно пользователю, чтобы он мог добавить сообщение в окно чата, что также можно легко сделать на стороне клиента. Это просто для демонстрации использования обратных вызовов. Строка 29 — самая важная строка, которая помогает в создании приватных чатов, которые наиболее важны для достижения приватных чатов. Он принимает имя получателя и создает комнату с клиентом и получателем и отправляет сообщение в комнату.

Это самое простое приложение для чата, которое мы можем создать. Он небольшой и легкий, но эффективный. Вы можете добавить свои функции в приложение с улучшенным пользовательским интерфейсом, и все готово.

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *