gpt4 book ai didi

ruby-on-rails - 如何在 Rails 应用程序中实现 TCP 套接字?

转载 作者:可可西里 更新时间:2023-11-01 02:33:57 25 4
gpt4 key购买 nike

总体而言,我是 Rails 和 Web 开发的初学者。我正在寻求在 Rails 应用程序中实现一个 ruby​​ TCPSocket 服务器,它将通过原始 tcp 连接接收来自客户端的数据没有 http 协议(protocol)。该应用程序将具有将由 Rails 处理的其他功能。这可能吗?例如,这是一个我可以在我的计算机上运行的简单服务器:

require 'socket'               

server = TCPServer.new 3490
puts "waiting for connection"
client = server.accept
puts "client found"
while str=client.recv(100);
val=str.unpack("H*")
temp=val.join('').gsub('0','').to_i

#application specific code below
if temp<100
temp=temp*10
end
print "Temperature: "
puts temp*0.125
end

如何在 Rails 应用程序中实现它?任何类型的建议将不胜感激。

最佳答案

Rails 基本上是 Rack申请,根据 Rails documentation ,

Rails.application is the primary Rack application object of a Rails application. Any Rack compliant web server should be using Rails.application object to serve a Rails application.

由于 Rack 主要包装 HTTP 请求和响应,因此可能无法构建与 Rails Server 的基于纯 TCP IP 套接字的交互。

但是,您可能想看看 Action Cable ,Rails 5 的新增功能 - 集成了 websockets使用 Rails 应用程序。根据 Wikipedia ,

The WebSocket Protocol is an independent TCP-based protocol. Its only relationship to HTTP is that its handshake is interpreted by HTTP servers as an Upgrade request.

考虑到 Rails 主要是一个 Web 应用程序框架,如何提取 Action Cable 以与非浏览器客户端一起工作可能很棘手。

关于ruby-on-rails - 如何在 Rails 应用程序中实现 TCP 套接字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38703181/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com