2013-10-26 3 views
0

faye-websocket-ruby의 경우 readme에는 아래 예제가 있습니다. 코드랙에서 WebSocket 연결 처리

p [:close, event.code, event.reason]

의 라인과 p이 무엇을 무엇을 의미합니까합니까? 또한 ws.rack_response은 무엇을합니까? 왜 필요한가요?

# app.rb 
require 'faye/websocket' 

App = lambda do |env| 
    if Faye::WebSocket.websocket?(env) 
    ws = Faye::WebSocket.new(env) 

    ws.on :message do |event| 
     ws.send(event.data) 
    end 

    ws.on :close do |event| 
     p [:close, event.code, event.reason] 
     ws = nil 
    end 

    # Return async Rack response 
    ws.rack_response 

    else 
    # Normal HTTP request 
    [200, {'Content-Type' => 'text/plain'}, ['Hello']] 
    end 
end 

답변

1

p()Kernelsee here 클래스의 인스턴스 메소드이다. 인쇄용으로 사용됩니다 (예 : puts). 그러나 인수에 대해 inspect 메소드를 호출합니다. puts를 사용하면 integer 1이 어떤 것이 아닌 "1"으로 인쇄되기 때문에 값이 무엇인지 정확히 알 수 있기 때문에 디버깅에 유용합니다.

모든 랙 응용 프로그램 환경 env을 허용하고 App 객체가 lambdaenv을 받아들이는 것을 볼 수 있습니다 위의 예에서 형태

[http_code, headers, body] 

의 배열을 반환 call라는 방법에 응답해야합니다 그리고 앞서 말한 형태의 배열을 리턴한다. 따라서 lambda에는 call이라는 랙 응용 프로그램이 있습니다.

rack_response 메서드는 HERE처럼 랙 호환 배열을 반환하는 것 이상을 수행하지 않습니다.

랙 애플리케이션에 대한 추가 정보 HERE.

+0

대단원! 또한'ws.rack_response'은 어떨까요? – user782220