Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Server 파트 앞으로의 계획 수립 #5

Open
hochan222 opened this issue Aug 6, 2019 · 13 comments
Open

Server 파트 앞으로의 계획 수립 #5

hochan222 opened this issue Aug 6, 2019 · 13 comments

Comments

@hochan222
Copy link
Member

hochan222 commented Aug 6, 2019

** 현재 완료 된 것 **

  1. 서버 안정화 (자동부팅 및 app 자동실행)
  2. 프런트 (React) 서버에 띄우기 (build 해서 dist//public으로 배포) 및 도메인 생성
    *부가적인것 ==> 배포 과정 자동화

** 앞으로 해야 될 것**
크게 (1) Real Time 파트와 (2) 웹 파트로 나눌 수 있습니다.

  1. Real Time
    c#과 Node 사이에 통신을 고려합니다.
    Socket 과 Streaming 을 고려해 보아야 합니다.

(1) Socket

  • socket.io

(2) Streaming

  • Streaming 표준 프로토콜 확인 --> 구현된 c#, JS Library 찾기
  • 통신 확인 Dummy Data 확인
  • 통신 안정화를 위해 고려해야 될 것 찾기
  1. Web
    (1) Ajax (CRUD) 구현 ( Asyn, await // Promise)
    (2) DB ORM 익히기
  • 편의성 ↑ 를 위해 NoSQL (MongoDB)
  • 문서화 ↑ 를 위해 SQL
    (3) 저장된 파일(PDF 등) UI로 이쁘게 띄우기 (React Hooks 공부)
    (4) Log in, Session 등 구현
    (5) Drag Drop (React Library)을 사용해서 Oculus와 연동 (희망 사항)
@jun108059
Copy link
Member

Web 할 일 세부 사항
(1) CRUD ajax 구현 asyn, await // promise
(2) DB ORM으로 저장 1. 편의성 ↑ - Mongo DB, NoSQL2. 문서화 ↓ - SQL
(3) 파일 띄우기 저장된 pdf 등 파일을 예쁘게 UI로 띄우기
(4) React Drag Drop 사용 Oculus와 연동 (희망사항)

@hochan222
Copy link
Member Author

  1. RTMP와 HLS & (RTP, RTCP, RTSP) - https://ooz.co.kr/106
    자세한 설명 - https://12bme.tistory.com/345

  2. RTMP (Real Time Messaging Protocol) 이용 가이드 - https://www.ncloud24.com/data/bbsData/1326071371&&CDN_Streming_RTMP_UserManua.pdf
    알 수 있는 점: RTMP를 사용하기 위해서는 동영상 플레이어가 필요 KT 문서

  3. RTMP 와 RTSP - https://idchowto.com/?p=3039
    알 수 있는 점: RTMP/RTSP 스트리밍은 기본적으로 아래 그림과 같이 서로 다른 비트레이트 (Bitrate) 로 인코딩 된 동영상 파일을
    3~4개 서버에 저장하여 제공함으로서 클라이언트는 재생 중간에 원하는 화질로 교체할 수 있게 됩니다. 이 방식은 전체 파일을 서버에서 보내는 것이 아니라 클라이언트가 시청하려는 부분의 몇 프레임만을 전송합니다.
    즉, 시청자는 가장 보려고 하는 장면을 찾아 클릭하면, 기다리는 시간 없이 바로 그 부분의 프레임부터 재생하게 되고,
    지나간 프레임은 자동으로 삭제되어, 순간 시점의 프레임만을 보게 됩니다. 클라이언트 측에 저장되는 파일이 없으므로 보안 문제도 자연스럽게 해결됩니다.

어쩌면 서버에 한번 저장을 해야되는 우리 입장에서는 스트리밍이 필요하지 않을 수 도 있겠다.

3-1. 사용방식: https://rockdrumy.tistory.com/1418

4.RTMP - https://juyoung-1008.tistory.com/30
알 수 있는 점: 현존하는 모든 플렛폼 (트위치, 아프리카 티비, 다음팟, 유튜브등)이 모두 RTMP를 사용한다.

  1. RTMP, adobe 공식문서 - https://www.adobe.com/devnet/rtmp.html
    RFC 2326 - IETF - https://www.ietf.org/rfc/rfc2326.txt
    알 수 있는 점: 표준

  2. 그외 streaming 라이브러리들 - https://libraries.io/search?keywords=rtsp
    ==> 스트리밍 의의 : 메모리에 로드하지 않는다. 우리는 서버에 저장 필요.. socket이 더 나을까?

@hochan222
Copy link
Member Author

사진을 주기떄문에 꼮 필요하다.
KakaoTalk_20190807_003343117

@hochan222
Copy link
Member Author

  1. 첫번째 목표 c++ 과 node js 간에 socket 만들기

@jun108059
Copy link
Member

Visual Studio Code에서 C++을 빌드하는 건 어렵다

@hochan222
Copy link
Member Author

Visual Studio Code에서 C++을 빌드하는 건 어렵다

c# 도전해보겠습니다아아아ㅏㅏㅏㅏ

@hochan222
Copy link
Member Author

socket.io Express에 삽입하기 https://freeprog.tistory.com/180

@jun108059
Copy link
Member

node.js Socket 예제 (C++ tcp 예제)

https://blog.naver.com/dimigozzang/220340027750

@hochan222
Copy link
Member Author

영준이형이 찾은 대단하신분

https://www.bogotobogo.com/cplusplus/sockets_server_client.php

@jun108059
Copy link
Member

jun108059 commented Aug 6, 2019

image

아는 것이 힘이다

@hochan222
Copy link
Member Author

오늘 최종 정리

  1. socket 통신은 socket.io로만 하고 VR에서 객체나 파일로 c#으로 data를 넘긴다.
  2. c++과 c# 사이에 무언가 효율적인 통신 방안

@hochan222
Copy link
Member Author

  1. 완료
    KakaoTalk_20190807_210141955
    KakaoTalk_20190807_210143872
    KakaoTalk_20190807_210145782

@hochan222
Copy link
Member Author

https://meetup.toast.com/posts/112
github - https://github.com/nhn/socket.io-client-unity3d

nhn/socket.io-client-unity3d#1
socket version recommand 'npm install socket.io@1.7.4'

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants