바뀜

편집 요약 없음
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"]["변수키"]
  −
|변수의 값을 얻어온다.
  −
|}
   
[[분류:장고 웹소켓]]
 
[[분류:장고 웹소켓]]