일단 이글의 배경으론 WebRTC를 이용하여 개발환경을 구성하던중 발생한 이슈를 정리함.
일단 데스크탑엔 웹캠 및 다른 입력장치가 없어 뭔가 확인해 볼 만한 장치가 없으므로 데스크탑으로 띄운 페이지를 모바일로 읽어서 해결해 보고자함.
그래서 예제를 보면서 서버를 구성하는데 오류발생.
cannot read property 'getusermedia' of undefined

https://github.com/ant-media/Ant-Media-Server/issues/1200
Cannot read property 'getUserMedia' of undefined · Issue #1200 · ant-media/Ant-Media-Server
hello i have js error on chrome 74 on url => http://vps676372.ovh.net:5080/WebRTCApp/ error => webrtc_adaptor.js:85 Uncaught TypeError: Cannot read property 'getUserMedia' of undefine...
github.com
답을 찾아보니 http에선 브라우저가 막아놨고 https에서 제공한다고 한다.
둘의 차이나 이론적인 방법은 각설하고, 다음과 같은 대안을 내놓았다.
- AWS s3에 올리고 cloudfront로 https 로 변경 -> 한번올리는데 시간이 오래 걸리니 패스, 다 완성된 후에 고려
- web server for chrome -> 이론상으론 될것 같은데 이상하게 안열리며.. pass
- 할줄아는게 파이썬이니 파이썬으로 띄우기, -> 성공 다만 JinJa2 를 이용하다 보니 경로설정을 잡아줘야 한다.
해결방법은 다음과 같다.
wsl의 openssl을 이용 crt, key 파일을 생성후 플라스크를 이용하여 https 서버를 구성
Openssl 사용
https://m.blog.naver.com/espeniel/221845133507
OpenSSL 로 개인키 발급 및 SSL 인증서 생성 #1
개요 웹 서비스에 https 를 적용할 경우 SSL 인증서를 VeriSign, Thawte, GeoTrust 등에서 인증서...
blog.naver.com
플라스크는 ssl을 import 한후 경로를 지정해 설정해준다.
from flask import Flask, render_template
import ssl
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World"
@app.route("/page1")
def page1():
return render_template('./index.html')
if __name__ == "__main__":
ssl_context = ssl.SSLContext(ssl.PROTOCOL_TLS)
ssl_context.load_cert_chain(certfile='server.crt', keyfile='server.key', password='****')
app.run(host="0.0.0.0", port=2500, ssl_context=ssl_context, debug=True)
이후 해당 포트로 접속할때 https로 접근할 수 있다.
'Back > Python' 카테고리의 다른 글
[Python] OpenCV (0) | 2021.01.05 |
---|---|
[Python][Flask] Flask에서 cache 설정 (0) | 2020.11.03 |
[Python] Flask를 이용한 Tflite Imageclassfier REST API 구성 (0) | 2020.11.02 |
[Python][Anaconda3] Anaconda 설치(1) (0) | 2020.10.27 |
[Python] Flask 살펴보기 (0) | 2020.10.21 |