Messages travel both ways. No order or protocol imposed.
require 'nanomsg'

socket = NanoMsg::PairSocket.new
socket.bind 'tcp://127.0.0.1:4567'
socket.send 'm1'
require 'nanomsg'

socket = NanoMsg::PairSocket.new
socket.connect 'tcp://127.0.0.1:4567'
socket.recv # => 'm1'