On 8/19/06, andreas.alin / gmail.com <andreas.alin / gmail.com> wrote: > Yow! > I'm trying to make a script that will act as a server (server 1), and > when a connection to the server server 1 is made, it will start a > thread that will connect to another server (server 2), and it will keep > the connection to server 2, even if the client disconnects. > > The thing is that, as I've tried, my client/server will not connect to > another server, and if it does, the client can not disconnect. > > Any ideas? > > Thanks, > Andreas > > ---------------------- > > require 'socket' > > class Session < Thread > def initalize(session_id) > super > @session_id = session_id > end > > def session_id > @session_id > end > > def send_message( message > # This method should send a message to > # server 2 > puts message > end > end > > threads = [] > > server = TCPServer.new("0.0.0.0", 12121) > > while (session = server.accept) > session_id, message = session.gets.split(";", 2) > > t = threads.map {|t| t if t["session_id"] == session_id }.delete_if > {|s| s == nil}.first > puts t > if t > puts "Found thread with existing session_id: #{ session_id }" > t.send :send_message, message > else > threads << Session.new(session) do |t| > Thread.current["session_id"] = session_id > puts "Creating thread for #{ session_id }" > end > end > session.close > end > > > First, make sure your constructor is getting called. You spelled it "initalize" instead of "initialize"