Action Cable를 만져야 할 때가 많지 않을 것 같은데, 무거운 허리를 들 수가 없어요...이런 분들에게.

5315 단어 RubyRails

Introduction


최근 일주일 정도는 액션 케이블을 가지고 놀았지만, 생각보다 과장되지는 않았다.이것은 나의 진실한 소감이다.
나만큼 무서운 사람이 많은 것 같아서 이 기사를 쓰기로 했어요.
어쨌든 공식 샘플을 이동해보면 "귀찮을 것 같은데~"느낌이 싱겁거나 실망스러울 수 있다.
Action Cable를 건드려야 한다고 생각하기 시작했는데, 눈치채면 한 달,
이런 분들은 이 시기에 꼭 도전해보세요(☝ ՞ਊ ՞)☝

actioncable-examples 소스 코드 등


어쨌든 README부터 읽어주세요.
https://github.com/rails/rails/tree/master/actioncable
다음부터 clone 공식 샘플의 원본 코드를 시작하십시오
https://github.com/rails/actioncable-examples
Rails5.0.0과 레디스가 이동하는 환경이 있으면 공식 샘플코치에 따라 명령을 입력하면 된다.
이런 상황에서 코드는 한 줄의 수정 없이 이동할 수 있어야 한다.
이상은 제가 하고 싶은 말입니다.
환경 구축이 번거로운 사람을 위해 Docker를 사용하여 그 원본 코드를 이동할 수 있는 곳으로 정리합니다.

clone 소스 코드

$ git clone https://github.com/rails/actioncable-examples.git

Rails 이미지 준비

$ docker pull railshttps://hub.docker.com/_/rails/
Deprecated이지만 Action Cable만 움직이면 문제가 없습니다.
자세한 내용은 Docker file 확인
https://github.com/docker-library/rails/blob/74262f5482517f779681590b0194758ff75cf77c/Dockerfile

Redis 이미지 준비

$ docker pull redishttps://hub.docker.com/_/redis/

Redis 컨테이너 시작

$ docker run --name redis -d redis

cable.페이지 번호 수정


config/cable.yml
# production:
#   url: redis://redis.example.com:6379

local: &local
  # url: redis://localhost:6379
  url: redis://redis:6379

development: *local
test: *local

애플 용기 시작

$ docker run --rm --link redis:redis -p 3000:3000 -p 28080:28080 -v /path/to/your/actioncable-examples/:/actioncable-examples/  -it --name actioncable-examples rails bash
※ 경로를 변경해 주십시오

예를 들어 bundle install이나migration.

$ cd actioncable-examples $ ./bin/setupsetup을 실행하면 bundle install,db:create 등 다양한 이벤트가 있습니다.

Action Cable 서버 시작

$ ./bin/cable

Rails 서버 시작


터미널에서 다른 탭 열기$ docker exec -it actioncable-examples bash $ cd actioncable-examples $ ./bin/rails server --bind=0.0.0.0

브라우저에서 확인


이런느낌↓

주1) 태그 하나 또는 두 개는 비밀 모드 등 공유 쿠키를 사용하지 마십시오.
주2) 활동이 순조롭지 않을 때 터보링크스는 활동의 발화를 막을 수 있다.다시 장착하거나 터보링크스(땀)를 잘라보세요.
↑↑ turbolinks 주변에 문제가 있어서 홍보를 했어요.
https://github.com/rails/actioncable-examples/pull/32

VirtualBox 사용 시 고려 사항


Action Cable will only accept requests from specified origins, which are passed to the server config as an array. The origins can be instances of strings or regular expressions, against which a check for match will be performed.
중략
When running in the development environment, this defaults to "http://localhost:3000 ".
Action Cable은 라이센스된 origin 이외의 액세스를 거부합니다.
기본적으로 개발자에서 실행 허용http://localhost:3000
내 환경(Docker for Mac 사용)에서localhost:3000에서 시도해 보았지만 문제가 없는 조작이었습니다.그러나localhost에서 접근할 수 없는VirtualBox+Docker의 경우 약간의 설정이 필요합니다.
예를 들어 "default"이host를 사용한다면
development.rb
config.action_cable.url = 'ws://default:28080'
config.action_cable.allowed_request_origins = ['http://default:3000']
이렇게 수정하면 됩니다.
이렇게 하면 Action Cable 서버의 URL도 변경됩니다.
※ 동작이 확인되지 않았습니다.VirtualBox+Docker를 사용하는 사람이 잘못되면 m()m

끝말


신기술을 사용할 때 경험을 쌓지 못하고 이상한 코드를 자주 쓴다. 공식으로 샘플 코드를 준비할 수 있다면 큰 도움이 된다.
프로덕션에 5시리즈를 사용하는 곳은 많지 않은 것 같지만, 액션 케이블이 레일스 엔지니어가 되는 데 필요한 기술은 맞는 것 같으니 지금부터 활용해보자(·∀·)

좋은 웹페이지 즐겨찾기