php - How i can put my node.js app in an existing page? -
i have php page, website important logic , want put node.js chat there without changing php logic, maybe youtube's embed player or that. it's possible? or maybe should think in changing chat app php chat service?
i'm new node.js, love socket.io idea, it's faster other chat services, didn't find in google, don't know how proceed. can me? thanks!
my app code (if can help)
var app = require('http').createserver(resposta); // criando o servidor var fs = require('fs'); // sistema de arquivos var io = require('socket.io')(app); // socket.io var usuarios = []; // lista de usuários var ultimas_mensagens = []; // lista com ultimas mensagens enviadas no chat app.listen(3000); console.log("aplicação está em execução..."); // função principal de resposta requisições servidor function resposta (req, res) { var arquivo = ""; if(req.url == "/"){ arquivo = __dirname + '/index2.html'; }else{ arquivo = __dirname + req.url; } fs.readfile(arquivo, function (err, data) { if (err) { res.writehead(404); return res.end('página ou arquivo não encontrados'); } res.writehead(200); res.end(data); } ); } io.on("connection", function(socket){ // método de resposta ao evento de entrar socket.on("entrar", function(apelido, callback){ if(!(apelido in usuarios)){ socket.apelido = apelido; usuarios[apelido] = socket; // adicionadno o nome de usuário lista armazenada no servidor // enviar para o usuário ingressante ultimas mensagens armazenadas. for(indice in ultimas_mensagens){ socket.emit("atualizar mensagens", ultimas_mensagens[indice]); } var mensagem = "[ " + pegardataatual() + " ] " + apelido + " acabou de entrar na sala"; var obj_mensagem = {msg: mensagem, tipo: 'sistema'}; io.sockets.emit("atualizar usuarios", object.keys(usuarios)); // enviando nova lista de usuários io.sockets.emit("atualizar mensagens", obj_mensagem); // enviando mensagem anunciando entrada novo usuário armazenamensagem(obj_mensagem); // guardando mensagem na lista de histórico callback(true); }else{ callback(false); } }); socket.on("enviar mensagem", function(dados, callback){ var mensagem_enviada = dados.msg; var usuario = dados.usu; if(usuario == null) usuario = ''; // caso não tenha um usuário, mensagem será enviada para todos da sala if (mensagem_enviada.match("^/")) { mensagem_enviada = mensagem_enviada; } else { mensagem_enviada = "[ " + pegardataatual() + " ] " + socket.apelido + " diz: " + mensagem_enviada; } var obj_mensagem = {msg: mensagem_enviada, tipo: ''}; if(mensagem_enviada == '/kick'){ delete usuarios[socket.apelido]; var mensagem = "[ " + pegardataatual() + " ] " + socket.apelido + " saiu da sala"; var obj_mensagem = {msg: mensagem, tipo: 'sistema'}; // no caso da saída de um usuário, lista de usuários é atualizada // junto de um aviso em mensagem para os participantes da sala io.sockets.emit("atualizar usuarios", object.keys(usuarios)); io.sockets.emit("atualizar mensagens", obj_mensagem); armazenamensagem(obj_mensagem); socket.disconnect(); } else{ if(usuario == ''){ io.sockets.emit("atualizar mensagens", obj_mensagem); armazenamensagem(obj_mensagem); // armazenando mensagem }else{ obj_mensagem.tipo = 'privada'; socket.emit("atualizar mensagens", obj_mensagem); // emitindo mensagem para o usuário que enviou usuarios[usuario].emit("atualizar mensagens", obj_mensagem); // emitindo mensagem para o usuário escolhido } } callback(); }); socket.on("disconnect", function(){ delete usuarios[socket.apelido]; var mensagem = "[ " + pegardataatual() + " ] " + socket.apelido + " saiu da sala"; var obj_mensagem = {msg: mensagem, tipo: 'sistema'}; // no caso da saída de um usuário, lista de usuários é atualizada // junto de um aviso em mensagem para os participantes da sala io.sockets.emit("atualizar usuarios", object.keys(usuarios)); io.sockets.emit("atualizar mensagens", obj_mensagem); armazenamensagem(obj_mensagem); }); }); // função para apresentar uma string com data e hora em formato dd/mm/aaaa hh:mm:ss function pegardataatual(){ var dataatual = new date(); var dia = (dataatual.getdate()<10 ? '0' : '') + dataatual.getdate(); var mes = ((dataatual.getmonth() + 1)<10 ? '0' : '') + (dataatual.getmonth() + 1); var ano = dataatual.getfullyear(); var hora = (dataatual.gethours()<10 ? '0' : '') + dataatual.gethours(); var minuto = (dataatual.getminutes()<10 ? '0' : '') + dataatual.getminutes(); var segundo = (dataatual.getseconds()<10 ? '0' : '') + dataatual.getseconds(); var dataformatada = dia + "/" + mes + "/" + ano + " " + hora + ":" + minuto + ":" + segundo; return dataformatada; } // função para guardar mensagens e seu tipo na variável de ultimas mensagens function armazenamensagem(mensagem){ if(ultimas_mensagens.length > 5){ ultimas_mensagens.shift(); } ultimas_mensagens.push(mensagem); }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.2.3/jquery.min.js"></script>
Comments
Post a Comment