Parent

Methods

Included Modules

Files

RawJsonRpc::ServerSocket

Implements RawServerJsonRpcBase for a TCPServer, that can only handle one client at once.

Public Class Methods

new(port, logger=nil) click to toggle source

sets the port for serving. Optimal you can add a logger object to log server activities.

# File lib/rawjsonrpc/server.rb, line 78
def initialize(port, logger=nil)
  @port = port
  @log = logger
end

Public Instance Methods

server() click to toggle source

Starts the servering the methods for clients

# File lib/rawjsonrpc/server.rb, line 91
def server
  check log.level, "start serving data at " + @port.to_s
  server = TCPServer.new(@port)
  client = server.accept
  loop do
    begin
      data = client.gets
      if data == nil or data == "END\n"
        check @log.info, "client closed connection"
        client.close
        client = server.accept
        next
      end
      check @log.info, "recived from client " + data
      data = execute(data)
      if data != nil
        check @log.info, "send to client " + data
        client.puts(data)
      end
    rescue SocketError
      check @log.info, "client closed connection"
      client.close
      client = server.accept
    #  Exception from get killed
    rescue Errno::EPIPE
      check @log.info, "server get killed"
      exit
    rescue => ex
      check @log.fatal, "server get killed from: " + ex.message
      client.close
      raise ex
    end
  end
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.