1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
|
var uId = '';
var button = document.getElementsByClassName('sii-chat-send')[0];
var messageInput = document.getElementsByName('sii-chat-message')[0];
var buttonUser = document.getElementsByClassName('sii-chat-login')[0];
var contentMessage = document.getElementsByClassName('sii-chat-content')[0];
var WebsocketClass = function(host){
this.socket = new WebSocket(host);
this.console = document.getElementsByClassName('console')[0];
};
WebsocketClass.prototype = {
initWebsocket : function(){
var $this = this;
this.socket.onopen = function(){
$this.onOpenEvent(this);
alert("connexion ouverte");
};
this.socket.onmessage = function(e){
$this._onMessageEvent(e);
};
this.socket.onclose = function(){
$this._onCloseEvent();
};
this.socket.onerror = function(error){
$this._onErrorEvent(error);
};
this.console.innerHTML = this.console.innerHTML + 'websocket init <br />';
},
_onErrorEvent :function(err){
console.log(err);
this.console.innerHTML = this.console.innerHTML + 'websocket error <br />';
},
onOpenEvent : function(socket){
console.log('socket opened');
this.console.innerHTML = this.console.innerHTML + 'socket opened Welcome - status ' + socket.readyState + '<br />';
},
_onMessageEvent : function(e){
e = JSON.parse(e.data);
if(e.msg.length > 0) e.msg = JSON.parse(e.msg);
contentMessage.innerHTML = contentMessage.innerHTML
+ '><strong>' + e.msg.from + '</strong> : ' + e.msg.message + '<br />';
contentMessage.scrollTop = contentMessage.scrollHeight;
this.console.innerHTML = this.console.innerHTML + 'message event lanched <br />';
this.console.scrollTop = this.console.scrollHeight;
},
_onCloseEvent : function(){
console.log('connection closed');
this.console.innerHTML = this.console.innerHTML + 'websocket closed - server not running<br />';
uId = '';
document.getElementsByName('sii-chat-name')[0].value = '';
messageInput.disabled = 'disabled';
button.disabled = 'disabled';
},
sendMessage : function(){
var message = '{"from":"' + uId + '", "message":"' + messageInput.value + '"}';
this.socket.send('{"action":"ctrl/chat/out", "msg":' + JSON.stringify(message) + '}');
messageInput.value = '';
this.console.innerHTML = this.console.innerHTML + 'websocket message send <br />';
}
};
var socket = new WebsocketClass('ws://127.0.0.1:8080/websocket/classes/serveur.php');//192.168.0.1/ 127.0.0.1
//var url='ws://localhost:8080/websocket/classes/serveur.php/echo'
// , socket=new WebSocket(url);
if(button.addEventListener){
buttonUser.addEventListener('click', function(e){
e.preventDefault();
socket.initWebsocket();
//initialWebsocket(socket);
uId = document.getElementsByName('sii-chat-name')[0].value;
messageInput.disabled = '';
button.disabled = '';
return false;
}, true);
button.addEventListener('click',function(e){
e.preventDefault();
socket.sendMessage();
return false;
}, true);
} else{
console.log('votre navigateur n\'accepte pas le addevenlistener');
} |
Partager