windows 기반 데스크톱 응용 프로그램에 웹 인터페이스를 제공하고 그 반대의 경우도 마찬가지입니다. 내 데스크탑 응용 프로그램은 wxRuby로 작성되었으며 웹 서버는 Sinatra (webrick 사용)입니다. 가장 간단한 아이디어는 이들을 서로 매쉬하는 것이었지만, 이것은 효과가 없습니다.데스크탑 응용 프로그램에 웹 서버를 포함 시키십시오 : wxRuby 및 Sinatra
이 코드는 작동하지 않습니다. 웹 서버와 GUI 응용 프로그램은 동시에 실행되지 않습니다. 데스크톱 응용 프로그램이 먼저 실행 된 다음 닫힌 후에 실행됩니다. sinatra가 시작됩니다.
require 'wx'
require 'sinatra'
configure do set :server, 'webrick' end
get '/' do
"Sinatra says hello"
end
class MyApp < Wx::App
def on_init
@frame = Wx::Frame.new(nil, -1, "Application")
@frame.show
end
end
app = MyApp.new
app.main_loop
그래서 나는 다시
Thread.new do
app = MyApp.new
app.main_loop
end
에 마지막 두 줄을 변경에 대한 생각했다. 데스크톱 응용 프로그램은 닫힐 때까지 실행되고 웹 서버가 시작됩니다. 그래서 나는 실타래를 실에서 시작하려고했습니다.
Thread.new do
require 'sinatra'
configure do set :server, 'webrick' end
get '/' do
"Sinatra says hello"
end
end
require 'wx'
class MyApp < Wx::App
def on_init
@frame = Wx::Frame.new(nil, -1, "Application")
@frame.show
end
end
app = MyApp.new
app.main_loop
다시. 데스크톱 응용 프로그램은 닫힐 때까지 실행되고 웹 서버가 시작됩니다.
조언을 보내지 만 한 가지 절차 만 알고 싶습니다. 솔루션이 두 가지 프로세스 인 경우; 폴링이 필요없는 강력한 프로세스 간 통신을 원합니다.
감사! Jeff
xx. 그들은 잠시 이상한 스레드 문제가 있었고, 다시 점검해야합니다. – jrhicks