Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.07.2014, 23:20
Интересующийся
Отправить личное сообщение для ilyad3 Посмотреть профиль Найти все сообщения от ilyad3
 
Регистрация: 24.07.2014
Сообщений: 17

node.js чат на сокетах
Всем привет,наткнулся на такой чат,вот решил его взять и доработать,вот сам код чата:
сторона сервера:
var http = require('http');
var Static = require('node-static');
var WebSocketServer = new require('ws');

// подключенные клиенты
var clients = {};

// WebSocket-сервер на порту 8081
var webSocketServer = new WebSocketServer.Server({port: 8081});
webSocketServer.on('connection', function(ws) {

  var id = Math.random();
  clients[id] = ws;
  console.log("новое соединение " + id);

  ws.on('message', function(message) {
    console.log('получено сообщение ' + message);

    for(var key in clients) {
      clients[key].send(message);
    }
  });

  ws.on('close', function() {
    console.log('соединение закрыто ' + id);
    delete clients[id];
  });

});


// обычный сервер (статика) на порту 8080
var fileServer = new Static.Server('.');
http.createServer(function (req, res) {
  
  fileServer.serve(req, res);

}).listen(8080);

console.log("Сервер запущен на портах 8080, 8081");

сторона клиента:
if (!window.WebSocket) {
	document.body.innerHTML = 'WebSocket в этом браузере не поддерживается.';
}

// создать подключение
var socket = new WebSocket("ws://localhost:8081");

// отправить сообщение из формы publish
document.forms.publish.onsubmit = function() {
  var outgoingMessage = this.message.value;

  socket.send(outgoingMessage);
  return false;
};

// обработчик входящих сообщений
socket.onmessage = function(event) {
  var incomingMessage = event.data;
  showMessage(incomingMessage); 
};

// показать сообщение в div#subscribe
function showMessage(message) {
  var messageElem = document.createElement('div');
  messageElem.appendChild(document.createTextNode(message));
  document.getElementById('subscribe').appendChild(messageElem);
}

страничка с которой клиент передаёт данные:
if (!window.WebSocket) {
	document.body.innerHTML = 'WebSocket в этом браузере не поддерживается.';
}

// создать подключение
var socket = new WebSocket("ws://localhost:8081");

// отправить сообщение из формы publish
document.forms.publish.onsubmit = function() {
  var outgoingMessage = this.message.value;

  socket.send(outgoingMessage);
  return false;
};

// обработчик входящих сообщений
socket.onmessage = function(event) {
  var incomingMessage = event.data;
  showMessage(incomingMessage); 
};

// показать сообщение в div#subscribe
function showMessage(message) {
  var messageElem = document.createElement('div');
  messageElem.appendChild(document.createTextNode(message));
  document.getElementById('subscribe').appendChild(messageElem);
}

вот мои вопросы к вам
1) как сделать,что бы этот чат обменивался данными с моим пхп скриптом(обмен именами юзеров в чате,ид чата и т.д.)
2) как сделать приватный чат из этого,Аля диалоги вк,в котором могут писать только два человека
3) Как сделать вывод тут данных которые сюда должен передать пхп,например Имя и Фамилия автора сообщения,Заранее всем спасибо!

Последний раз редактировалось ilyad3, 29.07.2014 в 00:01.
Ответить с цитированием
  #2 (permalink)  
Старый 28.07.2014, 23:48
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от ilyad3
1) как сделать,что бы этот чат обменивался данными с моим пхп скриптом(обмен именами юзеров в чате,ид чата и т.д.)
mysql? или mongo. любая база данных, которая есть и там и там

Сообщение от ilyad3
2) как сделать приватный чат из этого,Аля диалоги вк,в котором могут писать только два человека
ознакомься с теорией по сокетам в nodejs.

Сообщение от ilyad3
3) Как сделать вывод тут данных которые сюда должен передать пхп,например Имя и Фамилия автора сообщения,Заранее всем спасибо!
база данных?
Ответить с цитированием
  #3 (permalink)  
Старый 29.07.2014, 10:08
Интересующийся
Отправить личное сообщение для ilyad3 Посмотреть профиль Найти все сообщения от ilyad3
 
Регистрация: 24.07.2014
Сообщений: 17

1) mysql
2) Где можно про это почитать?
3) да
Ответить с цитированием
  #4 (permalink)  
Старый 29.07.2014, 10:50
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от ilyad3
2) Где можно про это почитать?
интернет) я лично про сокеты не читал
Ответить с цитированием
  #5 (permalink)  
Старый 29.07.2014, 11:05
Интересующийся
Отправить личное сообщение для ilyad3 Посмотреть профиль Найти все сообщения от ilyad3
 
Регистрация: 24.07.2014
Сообщений: 17

а про другие пункты?
как их реализовать?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Недопонимание философии Node.js Voronar AJAX и COMET 10 25.02.2013 14:00
Востребованность разработчиков на Node.js danik.js AJAX и COMET 7 08.12.2012 22:49
Разработчик Node.js в США (Сиэтл) Akvelon Работа 0 29.08.2012 10:47
Как написать свой чат mycoding Оффтопик 2 14.08.2010 21:51