window.WebSocket = function(oldWebSocket) {
return function WrappedWebSocket(loc) {
this.ws=new oldWebSocket(loc);
this.__defineSetter__('onmessage', function(val) { alert(val); });
}
}(window.WebSocket)
var oldWebSocket=window.WebSocket;
function WrappedWebSocket(loc)
{
this.prototype=new oldWebSocket(loc);
this.__proto__=this.prototype;
var wrapper=this;
this.onmessage=function(message)
{
var data = prompt("Receiving data",message.data);
wrapper.trueonmessage({data:data});
}
this.__defineSetter__('onmessage', function(val){
wrapper.trueonmessage=val;
});
}
window.WebSocket=WrappedWebSocket
Going to take a look at your example and tidy up mine a bit more
window.WebSocket = function(oldWebSocket) {
return function WrappedWebSocket(loc)
{
this.prototype=new oldWebSocket(loc);
this.__proto__=this.prototype;
var wrapper=this;
this.onmessage=function(message)
{
var data = prompt("Receiving data",message.data);
wrapper.trueonmessage({data: data});
};
this.__defineSetter__('onmessage', function(val){wrapper.trueonmessage=val;});
this.send=function(data){this.prototype.send(prompt("Sending data",data));};
};
}(window.WebSocket);
Object.defineProperty(window.WebSocket.prototype, 'onmessage', {set:function(){alert(1)}});
room._ws.onmessage=function(data){alert(data)}; ) ==> Nothing happens
I had no luck with that, and it was a bit too esoteric for me to dive into why