Thanks guys i have a better understanding of how ape is working now but im still trying to implement a way to log pubids into my app database but Ape.log isnt working for me which is making debug near impossible.
On May 12, 11:42 pm, Xosofox <[email protected]> wrote: > Hi, > > may I also suggest my Blog post on this topic: > > http://www.xosofox.de/2010/10/ape-user-handling/ > > Have fun ;-) > > Peter > > On 12 Mai, 08:45, nologicon <[email protected]> wrote: > > > > > > > > > From what I've gathered it all boils down to getting their pubid. > > Once you have that you simply > > do: > > > var recipient = Ape.getUserByPubid(pubid); > > recipient.pipe.sendRaw('someCommand', { > > param1: 'value1', > > param2: 'value2' > > > }); > > > The thing you have to do yourself is store each user's pubid somewhere > > and reference > > it by something you know about the user so you can look it up later. > > In other words sessions, which ape doesn't provide for you. > > > What I did was store each users pubid to mysql when they connect: > > > Ape.registerHookCmd("connect", function(params, cmd) { > > Ape.log('--------------------------'); > > Ape.log('connect'); > > > if (!$defined(params.sessionKey)) { > > Ape.log("Can't connect, sessionKey not specified"); > > return 0; > > } > > cmd.user.setProperty('sessionKey', params.sessionKey); > > > return 1; > > > }); > > > Ape.addEvent('adduser', function(user) { > > Ape.log('--------------------------'); > > Ape.log('adduser'); > > > var pubid = user.getProperty('pubid'); > > var sessionKey = user.getProperty('sessionKey'); > > > Ape.log('Updating users pub id to '+pubid+' in the database'); > > sql.query("SELECT * FROM sessions WHERE id = '"+session+"' LIMIT > > 1", function(res){ > > var userId = res[0]['user_id']; > > sql.query("UPDATE `users` SET `pubid` = '"+pubid+"' WHERE > > `id` = "+userId); > > });; > > > }); > > > In the connect hook you store the users sessionKey and then use it in > > the adduser event to fetch their session > > from the database. That get's you their userId, and then you can > > update their db record with their ape pubid. It essentially > > ties their web session and their ape session together. > > > To send something out to a specific user you just have to know > > something about them... like their username, session key, etc. > > so you can grab their record from the database. > > > Also, to get the session key into ape from the client I just read > > their session cookie from the browser and passed it as a param > > on ape.core.start: > > > Another approach if you can't use mysql is to keep a hash of usernames/ > > nicknames to pubids directly in the javascript module. > > Checkout the nickname example in the source, it gives the basics of > > how to set that up. > > > ape.core.start({ > > sessionKey: $.cookie("SESSION_COOKIE") > > > }); -- 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/
