1. 使用 socket
库实现简单消息通信
- 服务端(接收消息的节点)
require 'socket'
server = TCPServer.new('localhost', 12345)
- **监听连接并接收消息**:
loop do
client = server.accept
data = client.gets
puts "Received: #{data}"
client.close
end
- 客户端(发送消息的节点)
require 'socket'
client = TCPSocket.new('localhost', 12345)
- **发送消息**:
message = "Hello, Server!"
client.puts message
client.close
2. 使用 ZeroMQ
库(更适合分布式场景)
- 安装
ZeroMQ
库:
gem install zmq
- 服务端(接收消息的节点)
require 'zmq'
context = ZMQ::Context.new
socket = context.socket(ZMQ::REP)
socket.bind('tcp://*:12345')
- **接收并回复消息**:
while true
message = socket.recv_string
puts "Received: #{message}"
socket.send_string("Message received successfully")
end
- 客户端(发送消息的节点)
require 'zmq'
context = ZMQ::Context.new
socket = context.socket(ZMQ::REQ)
socket.connect('tcp://localhost:12345')
- **发送消息并接收回复**:
message = "Hello, Server!"
socket.send_string(message)
reply = socket.recv_string
puts "Received reply: #{reply}"