[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