[RUBY-ON-RAILS] API로 ActionCable를 사용하는 방법
RUBY-ON-RAILSAPI로 ActionCable를 사용하는 방법
나는 사용자가 온라인하고 서로에게 메시지를 보낼 수 있도록 할 때 보여 레일 5 베타 1 ActionCable를 사용하여 매우 간단한 응용 프로그램을 만들었습니다.
지금, 나는, ActionCable의 클라이언트 측 참여 (레일 5에서 실행되지 않습니다) 다른 응용 프로그램의 맥락에서 그것을 구현하고 보낼 수있는 초기 응용 프로그램과 연결 및 온라인 등 같은 데이터를 (수신에 기본적 것 사용자 또는 메시지)의 상태를 표시합니다.
그 두 번째 응용 프로그램에서 데이터를 보내려면, 나는 단순히 AJAX POST 요청을 할 수 있습니다, 가정합니다. 질문 : 어떻게 내가 처음 응용 프로그램의 열려있는 연결에 내 두 번째 응용 프로그램에서 가입 할 수 있습니까?
심지어 : 어떻게 API를 통해 다른 응용 프로그램에서 내 레일 응용 프로그램의 ActionCable 연결에 가입합니까?
내 생각 엔 내가 본질적으로 내 두 번째 응용 프로그램에서 어떻게 든이 커피 스크립트를 포함 할, 수 있습니다 :
App.appearance = App.cable.subscriptions.create "AppearanceChannel",
connected: ->
# Called when the subscription is ready for use on the server
disconnected: ->
# Called when the subscription has been terminated by the server
received: (data) ->
# ...
해결법
-
==============================
1.당신은 본질적으로 다른 응용 프로그램 (https://github.com/rails/rails/tree/master/actioncable/app/assets/javascripts)에 ActionCable JS 코드의 사본 또는 포트를 포함해야합니다.
당신은 본질적으로 다른 응용 프로그램 (https://github.com/rails/rails/tree/master/actioncable/app/assets/javascripts)에 ActionCable JS 코드의 사본 또는 포트를 포함해야합니다.
업데이트 : 최근 레일의 사용 외부 표준 JS 5의 ActionCable 커피 스크립트를 루비 온 레일즈의 직접적인 포트를 제공 actioncable-JS라는 NPM 패키지를 출시 : https://github.com/mwalsher/actioncable-js
당신은 또한 원시 WebSocket을 사용할 수 있도록 ActionCable는 HTML5 WebSocket을 위에 불과 층이기 때문에 JS 코드 (또는 제 3 자 라이브러리) 메시징을 처리합니다.
ActionCable 메시지 프로토콜은 다소 여기에 설명되어 있습니다 : https://github.com/NullVoxPopuli/action_cable_client#the-action-cable-protocol. 나는 편의를 위해 아래에 붙여 넣을 수 있습니다 :
따라서, 예를 들어 (루비)
payload = { command: 'command text', identifier: { channel: 'MeshRelayChannel' }.to_json, data: { to: 'user', message: 'hi', action: 'chat' }.to_json }.to_json
-
==============================
2.mwalsher의 솔루션은 나에게 매우 도움 동안, 나는 최근에 내 질문에 대한 공식 용액으로 레일 저장소에 끌어 오기 요청을 발견했다.
mwalsher의 솔루션은 나에게 매우 도움 동안, 나는 최근에 내 질문에 대한 공식 용액으로 레일 저장소에 끌어 오기 요청을 발견했다.
https://github.com/rails/rails/pull/24991
나는 가까운 장래에이 주요 문서에 추가됩니다 가정합니다. 여기에 공식 actioncable NPM 패키지에 대한 링크는 다음과 같습니다 https://www.npmjs.com/package/actioncable
당신은 어떤 JS 앱 mwalsher의 솔루션은 비슷한 사용할 수 있습니다. 그냥 NPM 패키지를 설치 :
npm install actioncable --save
문서로부터 JS 예를 여기서는
ActionCable = require('actioncable') var cable = ActionCable.createConsumer('wss://RAILS-API-PATH.com/cable') cable.subscriptions.create('AppearanceChannel', { // normal channel code goes here... });
편집 : 풀 요청이 이제 잠시 동안 합병 설명은 공식 추가 정보의 일부입니다되었습니다 - 레일 가이드 단지 아직.
from https://stackoverflow.com/questions/35320791/how-to-use-actioncable-as-api by cc-by-sa and MIT license
'RUBY-ON-RAILS' 카테고리의 다른 글
[RUBY-ON-RAILS] 3 레일 : 현재 사용자의 시간대로 시간대를 설정 (0) | 2020.03.03 |
---|---|
[RUBY-ON-RAILS] 레일 3 사용자 정의 고안 오류 메시지? (0) | 2020.03.03 |
[RUBY-ON-RAILS] 루비의 BigDecimal 전성 검사 (부동 소수점 newb) (0) | 2020.03.03 |
[RUBY-ON-RAILS] 레일의 기본 날짜 및 시간 형식을 변경 4 (0) | 2020.03.03 |
[RUBY-ON-RAILS] 레일 및 고안와 기능 테스트. 내 비품에 무엇을 넣어? (0) | 2020.03.03 |