Еще один блог :)

Вопросы по Socket.IO

  1. Что такое Socket.io
  2. Приведите пример приложений реального времени
  3. Почему рекомендуют socket.io
  4. Как установить
  5. Как узнать , что пользователь подключился/отключился
  6. Как отправить данные от клиента к серверу
  7. Как отправить данные от сервера клиенту
  8. Как подключится к комнате
  9. Как отправить сообщения в комнату

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

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

3. Преимущества Socket.io 

а) удобная двунаправленная модель соединения
б) о наступлении события можно уведомить как одного, так и всех пользователей широковещанием
в) это проверенное временем решение
г) библиотеку используют ZenDesk, MS Office и другие известные компании

4. Как установить

В браузере скрипт, на стороне сервера 

$ npm install socket.io
и в приложении
var io = require('socket.io');

5. Как узнать, что пользователь подключается или отключается:

на сервере

var app = require('express');

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

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

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

 res.sendFile('index.html'); 

});

io.on('connection', function(socket){

console.log('user connected');

io.on('disconnect', function(){

console.log('disconnected');

});

});

http.listen(3000, function(){

console.log('listening 3000');

});

II В браузере

var socket = io.connect('http://127.0.0.1:3000');

6. Как узнать, что новый пользователь зашел на сайт и как отправить данные от клиента на сервер

на сервере

socket.on('adduser', function(name, email, uid){

console.log('new user');

});

на клиенте

socket.emit('adduser', 'Name', 'email@server.com', 1111);

7. А как отправить данные от сервера клиенту?

на сервере

socket.emit('newReg', 'name', 'request');

socket.broadcast.to(room).emit('newReg', 'name', 'message');

в браузере

socket.on('newReg',  function(name, message){

});

8. Как подключится к комнате?

io.on('connection', function(socket){

socket.join('roomId');

});

9. Как отправить сообщение в комнату

io.in('roomId').emit('eventName');

io.to('roomId').emit('eventName');

 

 

 

 

 

Опубликовано в категории Вопросы и ответы к собеседования

×