Ruby 如何通过Unix套接字与Sinatra web应用程序通信?

Ruby 如何通过Unix套接字与Sinatra web应用程序通信?,ruby,ajax,sinatra,Ruby,Ajax,Sinatra,我正在嵌入式设备上使用Sinatra编写一个web应用程序,需要能够通过Unix套接字向运行在同一设备上的嵌入式代码发送和接收数据。我们很可能会使用JSON作为数据格式,但我还没有找到一个真正说明如何设置该格式并与web应用程序通信的示例 我正在寻找一个将在套接字上侦听的代码示例,以及一个显示如何将该数据导入Sinatra网页的示例。我已经看到了这两个概念的点点滴滴,但没有任何东西将它们联系在一起。我从来没有亲自做过这件事,但可以在unix套接字上进行监听。我没有亲自做过,但我知道支持使用uni

我正在嵌入式设备上使用Sinatra编写一个web应用程序,需要能够通过Unix套接字向运行在同一设备上的嵌入式代码发送和接收数据。我们很可能会使用JSON作为数据格式,但我还没有找到一个真正说明如何设置该格式并与web应用程序通信的示例


我正在寻找一个将在套接字上侦听的代码示例,以及一个显示如何将该数据导入Sinatra网页的示例。我已经看到了这两个概念的点点滴滴,但没有任何东西将它们联系在一起。

我从来没有亲自做过这件事,但可以在unix套接字上进行监听。

我没有亲自做过,但我知道支持使用unix套接字。事件机的优点是,您可以让代码监听套接字,而不会“干扰”sinatra web服务器。例如,您可以侦听套接字以获取一些统计信息,将这些统计信息存储在内存中,然后在HTTP请求中将它们返回给客户端


如果您打算使用EventMachine,我建议使用它作为您的Web服务器,它是在它上面实现的,所以您不需要手动启动它

文件
app.rb

#/usr/bin/env ruby
需要“sinatra”
SOCKET\u PATH=File.expand\u PATH('tmp/app.sock'))
类应用程序
运行:
$ruby app.rb

档案:

源代码'https://rubygems.org'
宝石“薄”
宝石“西纳特拉”

这似乎可以工作。所以基本上有一个监听器,它将获得的任何数据存储到一个适当的变量中,AJAX请求将访问该变量?