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/

Reply via email to