TCPSoket
同じソケットへのデータ送信をブロックしないクライアントのリッスン ループを実装する必要があります。
おおよその構造は次のとおりです。
class SocketWrapper
def initialize
@messages = []
@socket = TCPSocket.open('192.168.0.25', 2000)
Thread.new do
loop do
@messages.push @socket.read
end
end
end
def send_message(msg)
@socket.write msg
end
def read_messages
@messages.dup
@messages.clear
def
end
この構造で大丈夫でしょうか?
ここで 2 つの戦略を実装する必要があります。
- 応答 = send_request(request_data)
- リスナー - 着信データがリクエストに対する応答ではなく、リッスンする必要がある非同期データの場合。