我有一个应用程序,我正在编码通过 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