如何在 rails 服务器上连续监听 UDP 套接字
How to listen UDP Sockets continously on a rails server
我在 rails 上设置了一个新服务器,我需要在其中继续侦听端口以接收消息并将它们存储在我的数据库中。问题是服务器一直在监听端口,我不知道我可以在哪里写嗅探器 ruby 来做到这一点而不会中断。
我在 Node 中使用 express 和数据报库创建了这个项目,我需要做的就是在始终是 运行 的主文件上创建嗅探器,但我不知道该怎么做在 rails.
这是在 ruby
中找到的嗅探器
require 'socket.so'
ul = UDPSocket.new
ul.bind("localhost", 4001)
p ul.recvfrom(10)
一开始看到你的要求,我很好奇你到底想达到什么目的。
正如其他 post 中所建议的那样:Does Rails support a neat way of listening to a UDP socket?
Rails 是一个 web 应用程序开发框架,并不是真正的服务器守护程序框架。因此,考虑在不同的进程(您可以单独启动)上启动 UDP 侦听器可能是个好主意。
根据要求,如果您愿意为您的应用程序提供实时双向通信 (https://edgeguides.rubyonrails.org/action_cable_overview.html),带有 ActionCable 的 WebSockets 可能是个不错的选择。
如果您真的想在 rails 应用程序中分离出一个 UDP 侦听器,您仍然可以在 rails 初始化过程中挂接一个套接字侦听器,然后 运行 它在一个独特的 thread/process。但是,我觉得这很奇怪。
Rails 确实不是为此而设计的。但是,您可以从问题中的脚本开始,并使用 https://github.com/thuehlinger/daemons
将其设为守护进程
然后通过 HTTP/API 与您的 Rails 应用对话,或者直接与您的数据库对话。
执行此操作的方法是为嗅探器创建一个活动作业并在 config.ru 文件中调用它并初始化 rails 服务器
我在 rails 上设置了一个新服务器,我需要在其中继续侦听端口以接收消息并将它们存储在我的数据库中。问题是服务器一直在监听端口,我不知道我可以在哪里写嗅探器 ruby 来做到这一点而不会中断。
我在 Node 中使用 express 和数据报库创建了这个项目,我需要做的就是在始终是 运行 的主文件上创建嗅探器,但我不知道该怎么做在 rails.
这是在 ruby
中找到的嗅探器require 'socket.so'
ul = UDPSocket.new
ul.bind("localhost", 4001)
p ul.recvfrom(10)
一开始看到你的要求,我很好奇你到底想达到什么目的。 正如其他 post 中所建议的那样:Does Rails support a neat way of listening to a UDP socket? Rails 是一个 web 应用程序开发框架,并不是真正的服务器守护程序框架。因此,考虑在不同的进程(您可以单独启动)上启动 UDP 侦听器可能是个好主意。
根据要求,如果您愿意为您的应用程序提供实时双向通信 (https://edgeguides.rubyonrails.org/action_cable_overview.html),带有 ActionCable 的 WebSockets 可能是个不错的选择。
如果您真的想在 rails 应用程序中分离出一个 UDP 侦听器,您仍然可以在 rails 初始化过程中挂接一个套接字侦听器,然后 运行 它在一个独特的 thread/process。但是,我觉得这很奇怪。
Rails 确实不是为此而设计的。但是,您可以从问题中的脚本开始,并使用 https://github.com/thuehlinger/daemons
将其设为守护进程然后通过 HTTP/API 与您的 Rails 应用对话,或者直接与您的数据库对话。
执行此操作的方法是为嗅探器创建一个活动作业并在 config.ru 文件中调用它并初始化 rails 服务器