Hi all,
I believe I have one final hurdle in getting the java server to the point where we (Surevine) are happy to slow down the pace and start looking at contributing to other parts of the buddycloud eco-system (I think getting the API server running properly on ec2 ubuntu is next). But here's the current problem:
- I create a private channel on the java server
- I attempt to subscribe to private channel from nodejs server
- Subscription is allowed
- User on nodejs server can't post to newly subscribed channel
The reason this is happening is because the nodejs server does not appear to store any node config for an unsubscribed remote private channel (confirmed in database). I can understand why that wouldn't happen (i.e. because updates wouldn't get pushed to local cache). But this leaves me in the situation where, once subscription is authorised, I do not have read/post access (as appropriate) to the node (because node config hasn't been gathered/stored).
I still have to confirm that the java server isn't doing something wrong with disco#info responses for nodes but it looks like some work may be needed.
One think I have done temporarily is to also send affiliation details with a subscription notification message, as follows, however the nodejs server or webclient don't understand this so it isn't very helpful at present:
<message to="channels.node.js" from="channels.java.server" type="headline">
<event xmlns="http://jabber.org/protocol/pubsub#event">
<subscription node="/user/pri...@java.server" jid="us...@node.js" subscription="subscribed" />
<affiliations node="/user/pri...@java.server"> <affiliation affiliation="publisher" jid="us...@node.js" />
</affiliations>
</event>
</message>
If I haven't messed up disco#info for (private) nodes which I'm sure not because open nodes are fine, then maybe we should force the server to do a disco#info on a node once a subscription is confirmed from a remote server?
Interested in thoughts on this.
Cheers, Lloyd.