369번째 줄: |
369번째 줄: |
| |서버에서 실행 | | |서버에서 실행 |
| |서비스를 위해선 백그라운드로 진행해주어야 한다. | | |서비스를 위해선 백그라운드로 진행해주어야 한다. |
| + | 실행 여부는 <code>ps -ef | grep daphne</code>로 확인해보자. 실행이 안되면 nohup 떼서 에러메시지 확인. |
| |<code>nohup daphne -b 0.0.0.0 -p 8001 config.asgi:application &</code> | | |<code>nohup daphne -b 0.0.0.0 -p 8001 config.asgi:application &</code> |
| |- | | |- |
385번째 줄: |
386번째 줄: |
| </syntaxhighlight> | | </syntaxhighlight> |
| |} | | |} |
− | ,
| + | 웹소켓에서도 https 인증을 적용할 수 있다.([https://victorydntmd.tistory.com/265 추후에 반영해보자.]) |
| | | |
− | 웹소켓에서도 https 인증을 적용할 수 있다.([https://victorydntmd.tistory.com/265 추후에 반영해보자.])
| + | == 관련에러 == |
| + | |
| + | === The app module <module '앱이름' (<_frozen_importlib_external._NamespaceLoader object at 0x7f2faed9a8f0>)> has multiple filesystem locations (['/./앱경로', '/앱경로']); you must configure this app with an AppConfig subclass with a 'path' class attribute. === |
| + | 생각지도 못한 문제점이었다... 앱은 하나의 모듈처리가 되어 디렉토리 안에 __init__.py가 담기는데, 이게 없는 경우 경로를 제대로 찾지 못해 발생하는 에러이다. 앱 디렉토리 안에 __init__.py를 제대로 넣어주면 해결됨. |
| | | |
| = 마무리. 각 요소들이 어떤 역할을 하는지. = | | = 마무리. 각 요소들이 어떤 역할을 하는지. = |
411번째 줄: |
415번째 줄: |
| 들어온 경로와 컨슈머를 연결해준다. urls.py와 view.py의 관계. | | 들어온 경로와 컨슈머를 연결해준다. urls.py와 view.py의 관계. |
| | | |
− | === Consumer.py ===
| + | 다음과 같은 형태로 컨슈머를 연결한다.<syntaxhighlight lang="python"> |
− | {| class="wikitable"
| + | websocket_urlpatterns = [ |
− | !항목
| + | re_path(r'ws/notification/(?P<center_name>\w+)/$', consumers.NotificationConsumer.as_asgi()), |
− | !설명
| + | ] |
− | |-
| + | </syntaxhighlight> |
− | | self.scope["url_route"]
| + | |
− | |args와 kargs를 키로 갖는 사전.
| + | === [컨슈머는 컨슈머 문서로 옮김] === |
− | |-
| |
− | |self.scope["url_route"]["kargs"]
| |
− | |routing에서 정규표현식으로 사용한 변수.
| |
− | |-
| |
− | |self.scope["url_route"]["kargs"]["변수키"]
| |
− | |변수의 값을 얻어온다.
| |
− | |}
| |
| [[분류:장고 웹소켓]] | | [[분류:장고 웹소켓]] |