Seems I've hit a road block again. Can't seem to work out how I can add to my existing code so that when a user clicks a button they not only receive the existing return sent to everyone, but also receive an additional message that is only sent to them. I thought that when the user joined the channel there is a pubid that is created for them which I could send to the server module and then use a command to send a raw back to this specified pubid? This is the last thing I need to work out. I'm sorry if this has been answered a thousand times, I promise I've searched here and on the ape site to no avail.
Cheers On May 11, 2:27 pm, Maxus <[email protected]> wrote: > Thanks very much Louis, seems to be fixed with your suggestions!!! :) > > For any others having similar difficulty I had to send the raw with: > client.core.getPipe(myPipe).request.send('getInfo', {'testData': > 'ABC'}); > Otherwise the pipe was undefined when it hit the server module. > > On May 11, 1:24 pm, Louis Charette <[email protected]> wrote: > > > > > > > > > Hi there, > > > You are adding two times the event "multiPipeCreate". That's one thing. The > > second thing, you don't have to be in the "addEvent" function to send a > > raw. The way you did it: > > 1) the client connect to the server. > > 2) When the connection is made to the channel, the event "multiPipeCreate" > > is fired: the client start listening for the "info" raw > > 3) When you press the testButton, the event "multiPipeCreate" is redefined > > and you ask to send the raw when this same event is fired again (which > > won't append since it already been fired. It will fire again if you join a > > new channel) > > > You can send a Raw outside of the "multiPipeCreate". Try something like > > this: > > > var client; > > var myPipe; > > > $(document).ready(function(){ > > client = new APE.Client(); > > client.load({'channel': '*tapdicom'}); > > client.addEvent('load', function() { > > client.core.start({'name': new > > Date().getTime().toString()}); > > }); > > > client.addEvent('multiPipeCreate', function(pipe) { > > myPipe = pipe.getPubid(); > > }); > > > client.onRaw('info', function(params) { > > console.log('testReturn: '+params.data.testReturn); > > }); > > > $('#testButton').on('click', function(){ > > console.log('clicky'); > > client.core.request.send('getInfo', {'testData': 'ABC'}); > > }); > > > }); > > > Not sure, but you can also try "client.core.getPipe(myPipe).send('getInfo', > > {'testData': 'ABC'});" instead of "client.core.request.send('getInfo', > > {'testData': 'ABC'});". > > I use my own class, so I'm not sure of the real syntax. > > > - Louis > > > Le 2012-05-10 à 22:21, Maxus a écrit : > > > > Maybe I'm approaching this wrong? Here is simplified version of what > > > I'm trying to do. > > > > <!DOCTYPE html PUBLIC "-//W4C//DTD XHTML 1.0 Transitional//EN" "http:// > > >www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> > > > <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" dir="ltr" > > > lang="en"> > > > <head> > > > <script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/ > > > jquery.min.js" type="text/javascript"></script> > > > <script type="text/javaScript" src="./apeDir/APE_JSF/Clients/ > > > JavaScript.js"></script> > > > <script type="text/javaScript" src="./apeDir/APE_JSF/Demos/ > > > config.js"></script> > > > <script> > > > var client; > > > $(document).ready(function(){ > > > client = new APE.Client(); > > > client.load({'channel': '*tapdicom'}); > > > client.addEvent('load', function() { > > > client.core.start({'name': new > > > Date().getTime().toString()}); > > > }); > > > > client.addEvent('multiPipeCreate', function(pipe) { > > > client.onRaw('info', function(params) { > > > console.log('testReturn: '+params.data.testReturn); > > > }); > > > }); > > > > $('#testButton').on('click', function(){ > > > console.log('clicky'); > > > client.addEvent('multiPipeCreate', function(pipe) { > > > pipe.request.send('getInfo', {'testData': 'ABC'}); > > > }); > > > }); > > > }); > > > </script> > > > </head> > > > <body> > > > <div id='testButton'>click</div> > > > </body> > > > </html> > > > > Click the button, console displays message but no event is fired > > > according to network. It's driving me insane! I had a bit of a hard > > > time getting the SQL up and running (spider monkey error), finally got > > > that sorted and converted everything over from my original ajax code > > > and it was working great from my testing page but as soon as I try to > > > trigger a send from elsewhere in the code it fails. :( > > > > On May 11, 11:22 am, Maxus <[email protected]> wrote: > > >> Actually cant be a channel issue as the server side module prints to > > >> the ape log as soon as 'getinfo' is called. :/ > > > >> On May 11, 10:20 am, Maxus <[email protected]> wrote: > > > >>> Thanks for the reply, tried both with no success. I know it's not > > >>> scope completely because if I declare 'client' globally (placing 'var > > >>> client;' at the top of doc) it knows about it. ie changing > > >>> 'client.addEvent()' to 'client.add1Event' produces Uncaught > > >>> TypeError: Object [object Object] has no method 'add1Event'. But > > >>> doesn't seem to fire when its right. > > >>> Its like the object is there but they aren't on the same channel? > > > >>> On May 11, 12:28 am, Omar Chanouha <[email protected]> wrote: > > > >>>> Try removing the var from the client declaration. Or declare client > > >>>> outside of the document.ready > > > >>>> -O > > > >>>> On Thu, May 10, 2012 at 8:49 AM, Maxus <[email protected]> wrote: > > >>>>> Can someone please help, I'm sure there is something simple I'm > > >>>>> missing but I just can't get it. > > > >>>>> I'm including Clients/JavaScript.js, Demos/config.js and my custom js > > >>>>> script file in the parent document. Within the js script file I'm > > >>>>> trying to use APE but am having issues. > > > >>>>> Within a jquery document ready function I'm loading the server etc. > > >>>>> ie: > > > >>>>> var client = new APE.Client(); > > > >>>>> client.load({'channel': 'test'}); > > >>>>> client.addEvent('load', function() { > > >>>>> client.core.start({'name': new Date().getTime().toString())}); > > >>>>> }); > > >>>>> client.addEvent('multiPipeCreate', function(pipe) { > > >>>>> client.onRaw('info', function(params) { > > >>>>> console.log('info: '+params.data.item1+' - '+params.data.item2+' > > >>>>> - '+params.data.item3); > > >>>>> }); > > >>>>> }); > > > >>>>> This works fine. I then have a bunch of functions which I'd like to > > >>>>> add send events to. So I try adding this code to them: > > > >>>>> client.addEvent('multiPipeCreate', function(pipe) { > > >>>>> pipe.request.send('getInfo', {'input1': 'abc', 'input2': 'xyz', > > >>>>> 'input3': '123'}); > > >>>>> }); > > > >>>>> Its strange as it only ever works if it's placed straight below the > > >>>>> top code that creates the client and connects to the server... Even if > > >>>>> its placed directly within an onclick listener, within the document > > >>>>> ready block it fails to fire. I'm sure it's scope related but can't > > >>>>> work it out. Please help as I'm losing the little hair I have left! :) > > > >>>>> Thanks > > >>>>> Maxus > > > >>>>> -- > > >>>>> You received this message because you are subscribed to the Google > > >>>>> Groups "APE Project" group. > > >>>>> To post to this group, send email to [email protected] > > >>>>> To unsubscribe from this group, send email to > > >>>>> [email protected] > > >>>>> For more options, visit this group at > > >>>>>http://groups.google.com/group/ape-project?hl=en > > >>>>> --- > > >>>>> APE Project (Ajax Push Engine) > > >>>>> Official website :http://www.ape-project.org/ > > >>>>> Git Hub :http://github.com/APE-Project/ > > > > -- > > > You received this message because you are subscribed to the Google > > > Groups "APE Project" group. > > > To post to this group, send email to [email protected] > > > To unsubscribe from this group, send email to > > > [email protected] > > > For more options, visit this group at > > >http://groups.google.com/group/ape-project?hl=en > > > --- > > > APE Project (Ajax Push Engine) > > > Official website :http://www.ape-project.org/ > > > Git Hub :http://github.com/APE-Project/ -- You received this message because you are subscribed to the Google Groups "APE Project" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/ape-project?hl=en --- APE Project (Ajax Push Engine) Official website : http://www.ape-project.org/ Git Hub : http://github.com/APE-Project/
