fix + cleanup stdio
This commit is contained in:
parent
d80b13736e
commit
3c8ff5a547
1 changed files with 150 additions and 146 deletions
|
|
@ -4,31 +4,33 @@ require_relative "../../shared/transport"
|
|||
require "json"
|
||||
|
||||
module MCP
|
||||
module Transports
|
||||
class StdioTransport < Transport
|
||||
def initialize(server)
|
||||
@server = server
|
||||
@open = false
|
||||
$stdin.set_encoding("UTF-8")
|
||||
$stdout.set_encoding("UTF-8")
|
||||
super
|
||||
end
|
||||
|
||||
def open
|
||||
@open = true
|
||||
while @open && (line = $stdin.gets)
|
||||
handle_json_request(line.strip)
|
||||
class Server
|
||||
module Transports
|
||||
class StdioTransport < Transport
|
||||
def initialize(server)
|
||||
@server = server
|
||||
@open = false
|
||||
$stdin.set_encoding("UTF-8")
|
||||
$stdout.set_encoding("UTF-8")
|
||||
super
|
||||
end
|
||||
end
|
||||
|
||||
def close
|
||||
@open = false
|
||||
end
|
||||
def open
|
||||
@open = true
|
||||
while @open && (line = $stdin.gets)
|
||||
handle_json_request(line.strip)
|
||||
end
|
||||
end
|
||||
|
||||
def send_response(message)
|
||||
json_message = message.is_a?(String) ? message : JSON.generate(message)
|
||||
$stdout.puts(json_message)
|
||||
$stdout.flush
|
||||
def close
|
||||
@open = false
|
||||
end
|
||||
|
||||
def send_response(message)
|
||||
json_message = message.is_a?(String) ? message : JSON.generate(message)
|
||||
$stdout.puts(json_message)
|
||||
$stdout.flush
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
|||
Loading…
Reference in a new issue