/*ADOBE SYSTEMS INCORPORATED Copyright 2007 Adobe Systems Incorporated All Rights Reserved. NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms of the Adobe license agreement accompanying it. If you have received this file from a source other than Adobe, then your use, modification, or distribution of it requires the prior written permission of Adobe.*/ ColdFusion.WebSocket={NS:"coldfusion.websocket.channels",WELCOME:"welcome",AUTHENTICATE:"authenticate",SUBSCRIBE:"subscribe",UNSUBSCRIBE:"unsubscribe",PUBLISH:"publish",INVOKE_AND_PUBLISH:"invokeAndPublish",GET_CHANNELS:"getChannels",GET_SUBSCRIBER_COUNT:"getSubscriberCount",GET_SUBSCRIPTIONS:"getSubscriptions",SEND_MESSAGE:"sendMessage",INVOKE_AND_MESSAGE:"invokeAndSend",INVOKE:"invoke",STOP:"stop",init:function(id,_393,_394,_395,_396,_397,_398,_399,_39a){ if(cf_ws.isWebSocketSupported()){ lWSC=new cf_ws.CFWebSocketWrapper(); ColdFusion.WebSocket[id]=lWSC; lWSC.options={OnWelcome:this.cfonOpencallBk,OnMessage:this.cfMessageHandlerCallBk,OnClose:_398,onError:_399,appName:_393,cfauth:_394,subscribeTo:_395,referrer:_39a}; var _39b=self.location.hostname; if(_39b&&_39b=="localhost"){ _39b="127.0.0.1"; } var lURL="ws://"+(_39b)+":"+_cf_websocket_port+"/cfusion"+"/cfusion"; var lRes=lWSC.open(lURL,lWSC.options); lWSC.isOpen=true; lWSC.processConnected=function(_39e){ }; lWSC.processDisconnected=function(_39f){ }; lWSC.defaultMessageHandler=_396; if(_397){ lWSC.appOnOpenHandler=_397; } lWSC.channelSpecificResHandlers={}; lWSC.subscribercount_callbackHandlers={}; return lWSC; }else{ var _3a0={ns:ColdFusion.WebSocket.NS,reqType:ColdFusion.WebSocket.WELCOME,code:-1,msg:"Browser neither have native WebSocket support nor a flash player for the fallback."}; var _3a1=_399!=null?_399:_396; _3a1(_3a0); } },welcome:function(_3a2,_3a3,_3a4){ var lRes=this.isConnected(); if(lRes==true){ this.sendToken({ns:ColdFusion.WebSocket.NS,type:ColdFusion.WebSocket.WELCOME,authKey:_3a2,subscribeTo:_3a3,appName:_3a4}); } return lRes; },authenticate:function(_3a6,_3a7){ var lRes=this.isConnected(); if(lRes==true){ this.sendToken({ns:ColdFusion.WebSocket.NS,type:ColdFusion.WebSocket.AUTHENTICATE,username:_3a6,password:_3a7,appName:this.options.appName}); } return lRes; },subscribe:function(_3a9,_3aa,_3ab){ var lRes=this.isConnected(); if(lRes==true){ var _3ad={ns:ColdFusion.WebSocket.NS,type:ColdFusion.WebSocket.SUBSCRIBE,channel:_3a9,appName:this.options.appName}; if(_3aa!=null&&(typeof _3aa=="object")){ _3ad.customOptions=_3aa; } this.sendToken(_3ad); if(_3ab){ this.channelSpecificResHandlers[_3a9]=_3ab; this.channelName_subscriptionInProcess=_3a9; } } return lRes; },unsubscribe:function(_3ae){ var lRes=this.isConnected(); if(lRes==true){ var _3b0={ns:ColdFusion.WebSocket.NS,type:ColdFusion.WebSocket.UNSUBSCRIBE,channel:_3ae,appName:this.options.appName}; this.sendToken(_3b0); delete this.channelSpecificResHandlers[_3ae]; } return lRes; },publish:function(_3b1,_3b2,_3b3){ var lRes=this.isConnected(); if(lRes==true){ var _3b5={ns:ColdFusion.WebSocket.NS,type:ColdFusion.WebSocket.PUBLISH,channel:_3b1,data:_3b2,appName:this.options.appName}; if(_3b3!=null&&(typeof _3b3=="object")){ _3b5.customOptions=_3b3; } this.sendToken(_3b5); } return lRes; },invokeAndPublish:function(_3b6,_3b7,_3b8,_3b9,_3ba){ var lRes=this.isConnected(); if(lRes==true){ var _3bc={ns:ColdFusion.WebSocket.NS,type:ColdFusion.WebSocket.INVOKE_AND_PUBLISH,channel:_3b6,cfcName:_3b7,cfcMethod:_3b8,methodArguments:_3b9,appName:this.options.appName,referrer:this.options.referrer}; if(_3ba!=null&&(typeof _3ba=="object")){ _3bc.customOptions=_3ba; } this.sendToken(_3bc); } return lRes; },getSubscriberCount:function(_3bd,_3be){ var lRes=this.isConnected(); if(lRes==true){ var _3c0={ns:ColdFusion.WebSocket.NS,type:ColdFusion.WebSocket.GET_SUBSCRIBER_COUNT,channel:_3bd,appName:this.options.appName}; this.sendToken(_3c0); } if(_3be){ if(!this.subscribercount_callbackHandlers){ this.subscribercount_callbackHandlers={}; } this.subscribercount_callbackHandlers[_3bd]=_3be; } return lRes; },getSubscriptions:function(_3c1){ var lRes=this.isConnected(); if(lRes==true){ var _3c3={ns:ColdFusion.WebSocket.NS,type:ColdFusion.WebSocket.GET_SUBSCRIPTIONS,appName:this.options.appName}; this.sendToken(_3c3); } if(_3c1){ this.subscriptions_callbackHandler=_3c1; } return lRes; },sendMessage:function(_3c4,_3c5,_3c6){ var lRes=this.isConnected(); if(lRes==true){ var _3c8={ns:ColdFusion.WebSocket.NS,type:ColdFusion.WebSocket.SEND_MESSAGE,targetId:_3c4,data:_3c5,appName:this.options.appName}; if(_3c6!=null&&(typeof _3c6=="object")){ _3c8.customOptions=_3c6; } this.sendToken(_3c8); } return lRes; },invokeAndSend:function(_3c9,_3ca,_3cb,_3cc,_3cd){ var lRes=this.isConnected(); if(lRes==true){ var _3cf={ns:ColdFusion.WebSocket.NS,type:ColdFusion.WebSocket.INVOKE_AND_MESSAGE,target:_3c9,cfcName:_3ca,cfcMethod:_3cb,methodArguments:_3cc,appName:this.options.appName}; if(_3cd!=null&&(typeof _3cd=="object")){ _3cf.customOptions=_3cd; } this.sendToken(_3cf); } return lRes; },invoke:function(_3d0,_3d1,_3d2,_3d3){ var lRes=this.isConnected(); if(lRes==true){ var _3d5={ns:ColdFusion.WebSocket.NS,type:ColdFusion.WebSocket.INVOKE,cfcName:_3d0,cfcMethod:_3d1,methodArguments:_3d2,appName:this.options.appName,referrer:this.options.referrer}; if(_3d3!=null&&(typeof _3d3=="object")){ _3d5.customOptions=_3d3; } this.sendToken(_3d5); } return lRes; },openConnection:function(){ var lURL=cf_ws.URL_SERVER; this.open(lURL,this.options); },isConnectionOpen:function(){ var _3d7=this.isConnected(); return _3d7; },closeConnection:function(){ this.close({fireClose:true}); },cfonOpencallBk:function(_3d8){ if(this.cfauth!=null||this.susbcribeTo!=null){ _3d8.welcome(this.cfauth,this.subscribeTo,this.appName); } if(_3d8.appOnOpenHandler){ _3d8.appOnOpenHandler.call(_3d8); } },cfMessageHandlerCallBk:function(_3d9,_3da){ var _3db=_3da.defaultMessageHandler; if((_3d9.type=="event")&&(_3d9.name=="connect"||_3d9.name=="disconnect")){ return; } if((_3d9.reqType=="subscribe")&&_3da.channelName_subscriptionInProcess!=null){ if(_3d9.code==-1){ delete _3da.channelSpecificResHandlers[_3da.channelName_subscriptionInProcess]; } delete _3da.channelName_subscriptionInProcess; } if((_3d9.reqType=="getSubscriberCount")&&_3da.subscribercount_callbackHandlers[_3d9.channel]!=null){ _3da.subscribercount_callbackHandlers[_3d9.channel].call(this,_3d9); delete _3da.subscribercount_callbackHandlers[_3d9.channelname]; return; } if((_3d9.reqType=="getSubscriptions")&&_3da.subscriptions_callbackHandler!=null){ _3da.subscriptions_callbackHandler(_3d9); delete _3da.subscriptions_callbackHandler; return; } if(_3d9.type=="data"&&_3d9.channelname){ var _3dc=_3d9.channelname; var _3dd=_3da.channelSpecificResHandlers[_3dc]; while(_3dd==null){ var lPos=_3dc.lastIndexOf("."); if(lPos>0){ _3dc=_3dc.substr(0,lPos); _3dd=_3da.channelSpecificResHandlers[_3dc]; }else{ break; } } if(_3dd){ _3db=_3dd; } } _3db.call(this,_3d9); }}; function cfwebsocketinit(){ var _3df=ColdFusion.WebSocket; ns=cf_ws; for(var _3e0 in _3df){ ns["CFWebSocketWrapper"].prototype[_3e0]=_3df[_3e0]; } } cfwebsocketinit();