Action Cable를 만져야 할 때가 많지 않을 것 같은데, 무거운 허리를 들 수가 없어요...이런 분들에게.
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 rails
https://hub.docker.com/_/rails/ Deprecated이지만 Action Cable만 움직이면 문제가 없습니다.
자세한 내용은 Docker file 확인
https://github.com/docker-library/rails/blob/74262f5482517f779681590b0194758ff75cf77c/Dockerfile
Redis 이미지 준비
$ docker pull redis
https://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/setup
setup을 실행하면 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시리즈를 사용하는 곳은 많지 않은 것 같지만, 액션 케이블이 레일스 엔지니어가 되는 데 필요한 기술은 맞는 것 같으니 지금부터 활용해보자(·∀·)
Reference
이 문제에 관하여(Action Cable를 만져야 할 때가 많지 않을 것 같은데, 무거운 허리를 들 수가 없어요...이런 분들에게.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Kenta-s/items/aa7376a6bf17733b6732텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)