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/

Reply via email to