'.NET 개발/SignalR'에 해당되는 글 4건

  1. 2015.10.21 연결이 끊겼을 경우의 상황을 다 알아보기.
  2. 2015.10.14 2015-10-14 이슈 현황
  3. 2015.10.08 라이센스 이슈 해결 리스트
  4. 2015.07.20 Azure에 SignalR 배포

1. 어느 상황에서 연결면 끊긴 후 서버가 클라이언트를 인지 못하는지?


2. 한 객체에 연결이 두개가 안되기 때문에, 연결이 끊기면 못받는다.


실험 테스트

1. 라이센스가 꽉찬 상태에서 , 라이센스를 얻은 Client가 네트워크가 잠시 끈기면 재 연결 시도를 하는데 라이센스를 얻지 못할 수도 있다.

2. SignalR에 연결된 상태에서 네트워크가 끊겨도, 클라이언트는 Close 이벤트, Error 이벤트는 발생하지 않는다.

 - 클라이언트는 서버에게 보내는 단향방 비동기만 가능하고, 서버는 클라이언트에게 보낼 수 없다

 - 서버는 클라이언트가 죽었다고 인지한다.



'.NET 개발 > SignalR' 카테고리의 다른 글

2015-10-14 이슈 현황  (0) 2015.10.14
라이센스 이슈 해결 리스트  (0) 2015.10.08
Azure에 SignalR 배포  (0) 2015.07.20
Posted by Hoya0415
,

라이센스 갱신은 Client에서 Hub Connection이 정상적으로 되어있는 상태에서 


라이센스 갱신 시간에 응답한 경우에만 갱신이 가능하다.


1. 라이센스 갱신 시점에서 라이센스를 생성해 줘야한다.


문제 : 라이센스 갱신 시간에 응답을 못하였을 경우. (네트워크 문제 등..)

Error StatusCode: 404, ReasonPhrase: 'Not Found', Version: 0.0, Content: System.Net.Http.StreamContent, Headers:{  Content-Length: 0 }


2. 라이센스 History를 DB에 저장해야함. 사용자가 라이센스에 변화가 있을 경우

해결방법 : 

클라이언트가 -> 서버에 접속 시 

자신의 만료 기한을 가져오는데 

그 현재 시간이 그 기한보다 초과될 경우, 라이센스가 있는지 확인해서 없으면 생성하도록 한다. 



-----------이 변화에 대해서 알 방법이 지금으로써는 없다.------

1. 라이센스가 생성되는 변화. -> 라이센스 Create 문에서 변화를 알 수 있음.
2. 라이센스가 종료되는 변화. -> 라이센스 종료시간을 계속 체크해야함 
(종료되는 변화는 알 수 가 있을까?)
라이센스 개수가 변했을 경우에 저장?  or 초당 라이센스를 넣어야하는데 무의미 .


'.NET 개발 > SignalR' 카테고리의 다른 글

연결이 끊겼을 경우의 상황을 다 알아보기.  (0) 2015.10.21
라이센스 이슈 해결 리스트  (0) 2015.10.08
Azure에 SignalR 배포  (0) 2015.07.20
Posted by Hoya0415
,

1. 비동기 -> 동기화 해결 문제  - 부분 해결

   이슈 iss2 : 현재 Lock으로 동기화 해결을 했는데 -> Queue 방식으로 바꾸면 더 정확히 순차적으로 처리 가능.

2. OnConnected , OnReConnected, OnDisConnected 각 이벤트 별로 로직 완성  - 해결

3. 라이센스가 풀일 경우, 라이센스 재시도 프로세스  - 해결

DB에서 필드 속성을 varchar(100) 정도로 했었는데, 한글 저장시 '???' 나온다 nvarchar(100) 

nvarchar는 가변 길이(nvarchar) 유니코드 데이터(2byte) 라고 하니 , varchar는 가변 길이 문자열 정보 (1byte)

4. 연결 시간이 라이센스 초과 시 라이센스 생성 프로세스 - 부분 해결

   Timer로 10초 간격으로 실행시켜서 1~2분 정도 라이센스가 남은 것 중, 연결중인 사용자의 라이센스를 늘려주도록 하였는데 Store Procedure 로 시간 간격이 1~2분인걸 계산해서 리스트를 가져왔다.

   이슈 iss3 : Timer 말고, 라이센스 만료 시간을 줘서 해당 시간이 되었을 때, 클라이언트가 라이센스 갱신하라는 메서드를 서버에 보내면 어떨까?

5. WCF를 이용하여 Hub의 함수 호출 사용 - 사용자 Kick  - 해결

---------------------------------------------------------------------------------------------------------

Azure에 Hosting 을 했더니 DateTime.Now 해당 시간이 UTC(세계협정시)로 바뀌었다.

호스팅을 동아시아로 했는데도 불구.. 아무튼 알아두자.


해결 - 완전 해결

부분 해결 - 해결 되었으나 다른 로직을 썼을 경우 신뢰도 증가할 수 있는 여부가 있는 부분



'.NET 개발 > SignalR' 카테고리의 다른 글

연결이 끊겼을 경우의 상황을 다 알아보기.  (0) 2015.10.21
2015-10-14 이슈 현황  (0) 2015.10.14
Azure에 SignalR 배포  (0) 2015.07.20
Posted by Hoya0415
,


1. "웹 게시"대화 상자에서 "윈도우 Azure 웹 사이트"를 선택합니다.

2.  Microsoft 계정에 로그인하지 않은 경우,  로그인 그리고 기존 웹 사이트를 선택" 합니다.




3."기존 웹 사이트를 선택"대화 상자에서 클릭 New...


4. "윈도우 Azure에 사이트 만들기"대화 상자에서 고유 한 응용 프로그램 이름을 입력합니다. 

    지역 지역 드롭 ​​다운에서 당신에게 가장 가까운을 선택합니다. 클릭 만들기 

5 . "웹 게시"대화 상자에서 클릭 게시 .

6. 응용 프로그램이 게시를 완료하면, Azure app serivce 의 웹 애플리케이션 호스팅 SignalR 채팅 응용 프로그램은 브라우저에서 열립니다.


7. Azure app serivce 의 웹 애플리케이션에서 WebSocket을 활성화

WebSocket을 명시 적으로 SignalR 응용 프로그램에 사용되는 웹 응용 프로그램에서 활성화해야합니다. Azure에서는 Web Socket 옵션을 활성화해주면 됩니다. 그리고 구성 상단에  .NET 4.5 를 사용해주셔야 합니다.


해당 게시물의 모든 저작권은 Microsoft에 있습니다.

'.NET 개발 > SignalR' 카테고리의 다른 글

연결이 끊겼을 경우의 상황을 다 알아보기.  (0) 2015.10.21
2015-10-14 이슈 현황  (0) 2015.10.14
라이센스 이슈 해결 리스트  (0) 2015.10.08
Posted by Hoya0415
,