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:
>>>>
>>>> If you want to see a full example, the GUI and the monitoring 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