ログ情報を tcpsocket 経由でサーバーに送信し、監視クライアントをサーバーに接続してログ データを表示するようにコーディングしているアプリケーションがあります。これまでのところ、情報がサーバーに送信される段階に到達できましたが、次の段階に進む方法についていくつか考える必要があります. Ruby tcpseverを使用して、サーバーが受信データをクライアントに再送信するためにどのような方法を使用できますか? スレッド間でデータを保存するにはどうすればよいですか?
require "socket"
server_socket = TCPServer.new('localhost', 2200)
loop do
# Create a new thread for each connection.
Thread.start(server_socket.accept) do |session|
# check if received is viewer request
line = session.gets
if line =~ /viewer/
@filter = line[/\:(.*?)\:/]
session.puts "Listining for #{filter}"
loop do
if (log = ### need input here from logging app ###)
# Show if filter is set for all or cli matches to filter
if @filter == ':all:' || log =~ /\:(.*?)\:/
session.puts log
end
# Read trace_viewer input.
if session.gets =~ /quit/
# close the connections
session.puts "Closing connection. Bye!"
session.close
break
end
end
end
end
end
end