Hi Girogio, I forgot to ask, but, are you using the destiny branch or zaku? It looks like you're using zaku.
In your _source_ directory, not the build dir, (so: nox/src/nox/coreapps/messenger), you should have a file called "jsonmsg_event.i", which creates the module you're missing. That exists only in destiny On Thu, Jan 26, 2012 at 5:27 AM, Giorgio Mazza <[email protected]>wrote: > ** > Actually I get the same error, because I do not have neither > pyjsonmsgevent nor pymsgevent in messenger folder... > This is the list of what I have in messenger folder: > > giorgio@controller:~/nox/build/src$ ls -a nox/coreapps/messenger/ > . jsonmessenger.la > messenger.la > .. jsonmessenger_la-jsonmessenger.lo > messenger_la-messenger.lo > cacert.pem .libs > messenger.py > .deps Makefile > meta.json > __init__.py messenger_core.la > servercert.pem > __init__.pyc messenger_core_la-messenger_core.lo serverkey.pem > > > Do I miss anything in my folders or did I make something wrong? > > Giorgio > > > On 26/01/2012 13:05, Murphy McCauley wrote: > > Oops, that was my bad -- as I said, I had adapted that from another > message. > The correct import should be: > from nox.coreapps.messenger.pyjsonmsgevent import JSONMsg_event > > -- Murphy > > On Jan 26, 2012, at 3:40 AM, Giorgio Mazza wrote: > > Thanks, I think I will specify a port. > > Another question... > At the moment I get an error while importing the JSON_Msg event in the > install() of my component. > > "in install > from nox.coreapps.messenger.pymsgevent import JSONMsg_event > ImportError: No module named pymsgevent " > > I blindly followed your instructions at first, but then I looked in my > messenger folder without finding where this event is defined. > Could you please tell me where is it, so that I can insert the correct > path in my install function? I'm using the standard message folder. > Thank you. > Regards, > > Giorgio > > On 25/01/2012 22:28, Murphy McCauley wrote: > > I believe it defaults to port 2703. You should be able to set the port > number by specifying it on the commandline... > ./nox_core -i ptcp: jsonmessenger=tcpport=4096 your_app_here > > It listens on all IP addresses; there is currently no way to specify > just one. > > -- Murphy > > On Jan 25, 2012, at 1:11 PM, Giorgio Mazza wrote: > > A question about the socket opened when invoking jsonmessenger. > What are the IP address, the tcp port and the interface that this socket > refers to? Is there any way to set them? > I undersotood the mechanism, but I don't know where to send my messages > from the external application. > Thank you. > Regards, > > Giorgio > > On 24/01/2012 13:49, Murphy McCauley wrote: > > The minimum to get up and going should be something like this: > > 1) In your component's install function: > from nox.coreapps.messenger.pymsgevent import JSONMsg_event > JSONMsg_event.register_event_converter(self.ctxt) > self.register_handler(JSONMsg_event.static_get_name(), myHandler) > > 2) Implement a handler: > def myHandler (e): > import json > print json.loads(e.jsonstring) > e.reply(json.dumps({"msg":"Hello world"})) > > 3) Include jsonmessenger on the commandline or as a dependency > > > That may not be exactly correct -- it's adapted from a quick writeup I > did in December about using the new Python support for the "regular" > messenger (as opposed to the JSON messenger), which has not yet been pushed > to the repository. For reference, that post was: > http://noxrepo.org/pipermail/nox-dev/2011-December/008382.html > > (If using the new version of messenger that I linked to in that post, > you remove the register_event_converter() call from step 1 and include > pyjsonmessenger instead of jsonmessenger in step 3.) > > Invoking the jsonmessenger component (on the commandline or by including > it as a dependency in your app's meta.json) will create the server socket > for you. > > You absolutely do not have to use the messenger.py class. I'm removing > it from that directory, because all it ever does is confuse people -- it > really doesn't belong there. messenger.py is a library for writing JSON > messenger *clients* (external programs) in Python. That may be useful to > you, but you don't need it for the NOX side of things. > > Hope that helps. > > -- Murphy > > On Jan 24, 2012, at 4:12 AM, Giorgio Mazza wrote: > > Thank you. > I try to sum up the operations I need to perform, to see if I understood > correctly. > Basically in my external application I have to set up a socket that sends > json messages and this would be quite simple. > In my nox component, instead, I have to import the "JSONMsg_event" and, > within the "install()" instruction, to handle it with my specific method, > that, in my case, would only save these json messages into a dictionary, > for using them later, according to some conditions. > Is that correct? > > A couple of things that I didn't understand: > - I assume I also have to set up a server socket in my nox component, in > order to receive json messages and handle JSONMsg_events. So, I think this > socket has to be already up and running when I handle the event. So, when > do I have to create it and how? Do I have to use messenger.py channel class? > - Second question, probably related to the first. I think to be pretty > confused about jsonmessenger: what are the jsonmessenger files I could look > into in order to understand fields and methods that I would need to use? > Are the jsonmessenger.cc and jsonmessenger.hh in > nox/src/nox/coreapps/messenger? And, if it is the case, how can I integrate > them into a python component? > > Thanks again, > > Giorgio > > On 24/01/2012 12:28, Kyriakos Zarifis wrote: > > Hi Giorgio, > > yes, I think using jsonmessenger would be the best approach for this. > > you need to implement a send/receive interface on the external > application and in your nox component. For the external application, it's > pretty straightforward - Connect to the jsonmessenger socket and send json > strings. In your nox application you need to register for JSON messages, > and handle them appropriately. > > The wiki explains the communication in a few steps (specifically for the > GUI<->NOX, but it will be similar and simpler for any external app) > here<http://noxrepo.org/noxwiki/index.php/NOX_GUI#Connecting_a_subview_to_a_NOX_component> > : > > If you want to see a full example, the GUI <http://tinyurl.com/6p2yl5o> and > the monitoring <http://tinyurl.com/6nv83a3> component in destiny could be > a place to look. I'm afraid it's much more complex than what you need, but > the bits you need are in there if you dig in the code a bit. > > > On Tue, Jan 24, 2012 at 2:16 AM, Giorgio Mazza <[email protected] > > wrote: > >> Hi all! >> I have written a simple component in python that works fine. >> Now I would to improve it, making it to install flow entries depending on >> parameters received from an external application. >> In particular I want to pass those parameters via json messages to my >> component, which, in my thougths, has to open a "permanent" socket >> listening for them, save those parameters in a dictionary and, as a >> consequence, decide the desired switch behaviour (whether install or not a >> flow entry for the received parameters). >> In previous threads I found that I have to use jsonmessenger (even in >> python?) or to have a look to discovery.py, but I am not sure to have >> understood what I have to do and where in order to realize such a behaviour. >> Could anyone, please, help me? >> Thank you in advance, >> >> Giorgio Mazza >> _______________________________________________ >> nox-dev mailing list >> [email protected] >> http://noxrepo.org/mailman/listinfo/nox-dev >> > > > _______________________________________________ > nox-dev mailing list > [email protected] > http://noxrepo.org/mailman/listinfo/nox-dev > > > > _______________________________________________ > nox-dev mailing list > [email protected] > http://noxrepo.org/mailman/listinfo/nox-dev > > > > _______________________________________________ > nox-dev mailing list > [email protected] > http://noxrepo.org/mailman/listinfo/nox-dev > > > > > _______________________________________________ > nox-dev mailing list > [email protected] > http://noxrepo.org/mailman/listinfo/nox-dev > >
_______________________________________________ nox-dev mailing list [email protected] http://noxrepo.org/mailman/listinfo/nox-dev
