2014-10-15 2 views
0

내가 내 레일 응용 프로그램에 서버 측 웹 소켓을 설정하기 위해 노력하고 나는이 오류 메시지가루비 :

를 수신하고 있기 때문에 계속할 수 없습니다 생각 해요 '에'페이 - 웹 소켓 - 루비, 정의되지 않은 메서드

"에 대한 정의되지 않은 메서드가 '< Faye :: WebSocket : 0x00000007bfb808>"입니다.

나는 faye-websocket-ruby의 github 실제 README에서 코드를 사용하고 있습니다. on 메서드가 작동하지 않습니다.

이것은 내 간단한 테스트입니다. 요청을 수신하여 Faye::WebSocket 개체를 성공적으로 만듭니다. 그러나 'on'메서드를 사용할 수 없기 때문에 작업이 중단됩니다.

if Faye::WebSocket.websocket?(env) 
    ws = Faye::WebSocket.new(env) 
    logger.debug "WE HAVE A WEBSOCKET!" 

    ws.on :message do |event| 
    logger.debug "WE HAVE A MESSAGE!" 
    end 
end 

이것은 API의 일부이며 많은 예제에서 사용됩니다. 왜 이런 일이 일어날 수 있는지 아는 사람이 있습니까?

답변

1

README 파일은 구식입니다. ws.methods를보고 on 메서드를 찾을 수 없기 때문에 소스 코드를 살펴보기 시작했습니다. 그것은 제거되었거나 최소한 그것을 통합하려고하는 자체 문제를 도입했을 websocket-driver로 옮겼습니다. 새로운 올바른 구문은 examples에서 찾을 수 있습니다.

ws.on :message do |event|ws.onmessage = lambda do |event|으로 바꿨으며 더 이상 충돌이 발생하지 않았습니다.