2
私はクリスタルの初心者です。 質問があります。多分誰かが私を助けることができます。クリスタルラン繊維とウェブソケット
私はKemalフレームワークを使用します。このコードを持っている :
require "kemal"
require "json"
channel = Channel(Card).new
post "/posts" do |env|
json = JSON.parse(env.request.body as String)
url = json["url"].to_s
spawn do
# Slow process
page = Scraper.new(url)
channel.send(page)
end
{"url" => url}.to_json
end
ws "/" do |socket|
data = channel.receive
socket.send data.to_h.to_json
end
Kemal.run
をしかし、結果は一度だけ、ウェブソケットに送信されます。
(最初の投稿後のみ)
どうすれば修正できますか?
それ以外の場合は、ブロックが終了するとwebsocket接続が閉じていると想定します – asterite