75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
|
# File 'lib/bunny/reader_loop.rb', line 75
def run_once
frame = @transport.read_next_frame
return if frame.is_a?(AMQ::Protocol::HeartbeatFrame)
if !frame.final? || frame.method_class.has_content?
= @transport.read_next_frame
content = +''
if .body_size > 0
loop do
body_frame = @transport.read_next_frame
content << body_frame.decode_payload
break if content.bytesize >= .body_size
end
end
@session.handle_frameset(frame.channel, [frame.decode_payload, .decode_payload, content])
else
@session.handle_frame(frame.channel, frame.decode_payload)
end
end
|