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

Popular posts from this blog

sql - VB.NET Operand type clash: date is incompatible with int error -

SVG stroke-linecap doesn't work for circles in Firefox? -

python - TypeError: Scalar value for argument 'color' is not numeric in openCV -