0

私はRubyとSinatraを初めて使用するので、この問題がクライアント側なのかサーバー側なのかわかりません。アプリに POST を実行しようとすると、コンソール ログに 404 not found エラーが表示されます。「/」、「/admin/」、および「/connect」ページは正常に機能しますが、「/push」のみが見つかりません。

Javascript:

$.post( '/arduino/public/push', notification,'json'); 

config.ru

# encoding: UTF-8
require './stream'
run Sinatra::Application

stream.rb

require 'json'
require 'sinatra'

set :public_folder, Proc.new{File.join(root,"public")}
set server: 'thin'

get '/' do
    erb :index
end

get '/admin' do 
    erb :admin
end

def timestamp
    Time.now.strftime("%H:%M:%S")
end

connections = []
notifications = []

get '/connect', provides: 'text/event-stream' do 
    stream :keep_open do |out|
        connections << out

        #out.callback on stream close evt.
        out.callback{
            #delete the connection
            connections.delete(out)
        }
    end
end

post '/push' do
    puts params
    #Add the timestamp to the notification
    notification = params.merge({'timestamp'=>timestamp}).to_json

    notifications.shift if notifications.length > 10
    connections.each{ |out| out << "data: #{notification}\n\n"}
end
4

1 に答える 1