我正在嵌入式设备上使用Sinatra编写Web应用程序,并且需要能够通过Unix套接字将数据发送到同一设备上运行的嵌入式代码。我们很可能会使用JSON作为数据格式,但我没有找到一个真正说明如何设置它并与Web应用程序通信的示例。
我正在寻找将在套接字上侦听的代码示例,以及一个显示如何将该数据导入Sinatra网页的示例。我已经看到了两者的点点滴滴,但没有把概念联系在一起。
答案 0 :(得分:2)
我还没有亲自完成,但我知道Event Machine 支持使用unix socket。事件机器的优点是你可以让代码监听套接字而不会干扰sinatra web服务器。因此,您可以例如监听套接字以获取某些统计信息,将这些统计信息存储在内存中,然后在HTTP请求中将它们返回给客户端。
如果您要使用EventMachine,我建议您使用thin作为您的网络服务器,并在其上实施,因此您无需手动启动它。
答案 1 :(得分:1)
我从未亲自完成此操作,但Unicorn可以侦听unix套接字,并且可以serve Sinatra apps。
答案 2 :(得分:0)
文件app.rb
:
#!/usr/bin/env ruby
require 'sinatra'
SOCKET_PATH = File.expand_path('tmp/app.sock')
class App < Sinatra::Base
set :server, :thin
set :bind, SOCKET_PATH
get '/' do
'Welcome'
end
end
if __FILE__ == $0
App.run!
end
运行:$ ruby app.rb
宝石文件:
source 'https://rubygems.org'
gem 'thin'
gem 'sinatra'