$.fn.extend({ChatSocket: function(opciones) { var ChatSocket=this; var idChat=$(ChatSocket).attr('id'); defaults = { ws, Room:"RoomDeveloteca", pass:"1234", lblTitulChat:" Chat Develoteca.com ", lblCampoEntrada:"Menssage", lblEnviar:"Send", textoAyuda:"Develoteca", Nombre:"Anónimo", urlImg:"http://placehold.it/50/55C1E7/fff&text=U", btnEntrar:"btnEntrar", btnEnviar:"btnEnviar", lblBtnEnviar:"Enviar", lblTxtEntrar:"txtEntrar", lblTxtEnviar:"txtMensaje", lblBtnEntrar:"Enter", idDialogo:"DialogoEntrada", classChat:"", idOnline:"ListaOnline", lblUsuariosOnline:"Users joined", lblEntradaNombre:"Name:", panelColor:"success" } var opciones = $.extend({}, defaults, opciones); var ws; var Room=opciones.Room; var pass=opciones.pass; var lblTitulChat=opciones.lblTitulChat; var lblCampoEntrada=opciones.lblCampoEntrada; var lblEnviar=opciones.lblBtnEnviar; var textoAyuda=opciones.textoAyuda; var Nombre=opciones.Nombre; var urlImg=opciones.urlImg; var btnEntrar=opciones.btnEntrar; var btnEnviar=opciones.btnEnviar; var lblBtnEnviar=opciones.lblBtnEnviar; var lblTxtEntrar=opciones.lblTxtEntrar; var lblTxtEnviar=opciones.lblTxtEnviar; var lblBtnEntrar=opciones.lblBtnEntrar; var idDialogo=opciones.idDialogo; var classChat=opciones.classChat; var idOnline=opciones.idOnline; var lblUsuariosOnline=opciones.lblUsuariosOnline; var lblEntradaNombre=opciones.lblEntradaNombre; var panelColor=opciones.panelColor; if( $('#'+idOnline).length==0 ) { idOnline=idChat+"listaOnline"; $('#'+idChat).append('
'); } function IniciarConexion(){ conex='{"setID":"'+Room+'","passwd":"'+pass+'"}'; ws= new WebSocket("ws://achex.ca:4010"); ws.onopen= function(){ ws.send(conex); } ws.onmessage= function(Mensajes){ var MensajesObtenidos=Mensajes.data; var obj = jQuery.parseJSON(MensajesObtenidos); AgregarItem(obj); if(obj.sID!=null){ if( $('#'+obj.sID).length==0 ) { $('#listaOnline').append('
  • - '+obj.Nombre+'
  • '); } } } ws.onclose= function(){ alert("Conexión cerrada"); } } IniciarConexion(); function iniciarChat(){ Nombre=$('#'+lblTxtEntrar).val(); $('#'+idDialogo).hide(); $('#'+idOnline).show(); CrearChat(); UsuarioOnline(); getOnline(); } function CrearEntrada(){ $('#'+idChat).append('
    '); $('#'+idOnline).append('
    '+lblUsuariosOnline+'
    '); $("#"+lblTxtEntrar).keyup(function (e) {if (e.keyCode == 13) { iniciarChat(); }}); $("#"+btnEntrar).click(function(){ iniciarChat(); }); } function CrearChat(){ $('#'+idChat ).append( '
    '+lblTitulChat+" : "+Nombre+'
      '); $("#"+lblTxtEnviar).keyup(function (e) {if (e.keyCode == 13) { EnviarMensaje();}}); $("#"+btnEnviar).click(function () {EnviarMensaje();}); } function EnviarMensaje(){ ws.send('{"to":"'+Room+'","Nombre":"'+Nombre+'","Contenido":"'+$('#'+lblTxtEnviar).val()+'"}'); $("#"+lblTxtEnviar).val(''); }; function UsuarioOnline(){ ws.send('{"to":"'+Room+'","Nombre":"'+Nombre+'"}'); } function AgregarItem(Obj){ if((Obj.Contenido!=null)&&(Obj.Nombre!=null)){ $( ".itemtemplate" ).clone().appendTo( ".chatpluginchat" ); $('.chatpluginchat .itemtemplate').show(10); $('.chatpluginchat .itemtemplate #Nombre').html(Obj.Nombre); $('.chatpluginchat .itemtemplate #Contenido').html(Obj.Contenido); var formattedDate = new Date(); var d = formattedDate.getUTCDate(); var m = formattedDate.getMonth(); var y = formattedDate.getFullYear(); var h= formattedDate.getHours(); var min= formattedDate.getMinutes(); Fecha=d+"/"+m+"/"+y+" "+h+":"+min; $('.chatpluginchat .itemtemplate #Tiempo').html(Fecha); $('.chatpluginchat .itemtemplate').removeClass("itemtemplate"); } } function getOnline() { setInterval(UsuarioOnline, 3000); } CrearEntrada(); // Fin } });