我正在使用Faye和EventMachine來打開另一臺服務器的套接字。如果服務器未檢測到活動,則服務器超時。如何發送文件(二進制編碼),以便服務器不超時?在超時前發送websocket中的大文件
這是我有:
media_path = "/path/to/media/file"
EM.run {
ws = Faye::WebSocket::Client.new(uri)
ws.on :open do |event|
puts "Opening socket"
ws.send(File.read(media_path))
end
ws.on :message do |event|
puts "Recieving message"
end
ws.on :close do |event|
ws = nil
EM.stop
end
}
獲取可能會得到不一致的數據大小。考慮使用'f.read 65_536' - 64KB(2 ** 16)是一個體面的包裝尺寸,但你應該根據你的情況改變。 – Myst
P.S.您只發送第一行。考慮添加'直到f.eof?' – Myst