[zeromq-dev] simple publish subscribe not working with zeromq

Justin Karneges justin at affinix.com
Sun Oct 12 06:58:59 CEST 2014


Maybe you mean flow_mod['in_port'] ?





On Sat, Oct 11, 2014, at 08:23 PM, Karthik Sharma wrote:

Hi Justin,

Thanks for the reply.That did work!

I have a follow on question.

I am tying to send the following structure.

 msg = {'in_port':in_port,'dst':dst,'actions':actions}
 self.push_messages(msg)

However on the recieving side,I can decode the msg using
format(msg) but I can acess the members in the dictionary.

 print('flow_mod recieved from ryu-primary
{}'.format(flow_mod[in_port]))

---------> flow_mod recieved from ryu-primary {'dst':
u'00:00:00:00:00:04', 'actions':
[OFPActionOutput(max_len=65509,port=2)], 'in_port': 1}


self.add_flow(datapath, flow_mod[in_port], flow_mod[dst],
flow_mod[actions])

-----------> doesn't work?   -- gives error "NameError: global
name 'in_port' is not defined"


Regards,
Karthik.





On 12 October 2014 12:31, Justin Karneges
<[1]justin at affinix.com> wrote:

Hi Karthik,

You need to subscribe to a topic, not merely connect. You can
subscribe to an empty string to receive all messages. E.g.:
sub_socket.setsockopt(zmq.SUBSCRIBE, '')

On Sat, Oct 11, 2014, at 04:16 PM, Karthik Sharma wrote:

I want to establish publish subscribe communication between to
machines.The two machines that I have are
`ryu-primary` and `ryu-secondary`

The steps I follow in each of the machines are as follows.In
the initializer for `ryu-primary` (IP address is
192.168.241.131)

     self.context = zmq.Context()
     self.sub_socket = self.context.socket(zmq.SUB)
     self.pub_socket = self.context.socket(zmq.PUB)
     self.pub_port = 5566
     self.sub_port = 5566


    def establish_zmq_connection(self):
        # Socket to talk to server
        print "Connection to ryu-secondary..."
        self.sub_socket.connect ("tcp://192.168.241.132:%s" %
self.sub_port)

    def listen_zmq_connection(self):
        print('Listen to zmq connection')
        self.pub_socket.bind("tcp://*:%s" % self.pub_port)

    def recieve_messages(self):
        while True:
            try:
                string =
self.sub_socket.recv(flags=zmq.NOBLOCK)
                print('flow mod messages recieved
{}'.format(string))
                return string
            except zmq.ZMQError:
                break

    def push_messages(self,msg):
        self.pub_socket.send("%s" % (msg))


>From ryu-secondary (IP address - 192.168.241.132)

In the initializer

        self.context = zmq.Context()
        self.sub_socket = self.context.socket(zmq.SUB)
        self.pub_socket = self.context.socket(zmq.PUB)
        self.pub_port = 5566
        self.sub_port = 5566


    def establish_zmq_connection(self):
         # Socket to talk to server
         print "Connection to ryu-secondary..."
         self.sub_socket.connect ("tcp://192.168.241.131:%s" %
self.sub_port)

    def listen_zmq_connection(self):
         print('Listen to zmq connection')
         self.pub_socket.bind("tcp://*:%s" % self.pub_port)

    def recieve_messages(self):
        while True:
                try:
                         string =
self.sub_socket.recv(flags=zmq.NOBLOCK)
                         print('flow mod messages recieved
{}'.format(string))
                         return string
                except zmq.ZMQError:
                        break

    def push_messages(self,msg):
         print('pushing message to publish socket')
         self.pub_socket.send("%s" % (msg))


These are the functions that I have.

I am calling
establish_zmq_connections()
push_messages()
from `ryu-secondary`,

But I am not recieving those messages when I am calling
listen_zmq_connection()
recieve_messages()
from `ryu-primary`.

Can someone point out to me what I am doing wrong?

_______________________________________________

zeromq-dev mailing list

[2]zeromq-dev at lists.zeromq.org

[3]http://lists.zeromq.org/mailman/listinfo/zeromq-dev




_______________________________________________

zeromq-dev mailing list

[4]zeromq-dev at lists.zeromq.org

[5]http://lists.zeromq.org/mailman/listinfo/zeromq-dev

References

1. mailto:justin at affinix.com
2. mailto:zeromq-dev at lists.zeromq.org
3. http://lists.zeromq.org/mailman/listinfo/zeromq-dev
4. mailto:zeromq-dev at lists.zeromq.org
5. http://lists.zeromq.org/mailman/listinfo/zeromq-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.zeromq.org/pipermail/zeromq-dev/attachments/20141011/1fc7b290/attachment.htm>


More information about the zeromq-dev mailing list