실시간 접속자 플러그인을 배포하였습니다. > 자유게시판

자유게시판

실시간 접속자 플러그인을 배포하였습니다. 정보

실시간 접속자 플러그인을 배포하였습니다.

본문

정말, 테스트 수없이 해보고 올렸습니다.

버그가 없다고, 말하기에는 솔직히 조금 쫄고 있습니다. 너그럽게 양해바랍니다.

 

https://sir.kr/g5_plugin/14348

추천
2

베스트댓글

@ii0000039210 대응하기 위해서 챗지피티를 활용한 모습을 ㅎㅎㅎ

7acdaee9c9e82f285f5e53677b353b3b_1763204282_5243.png

저분한테 진지하게 내기 하셔도 될껄요 ? 아..그래요 그럼 웹소켓 구현 눈으로 보여주세요 온라인 말고 ..만나서요 천만원드릴께요 해보세요 ㅎㅎㅎㅎ

댓글 40개

@jihan006 아니 그런데 왜 자꾸 현재 접속자를 캡쳐해서 보내주는 것인가요? 사이트 패널을 보여줘야 하는것 아닌가요. 

내가 만든 것은 사이드 패널인데. 그누보드가 만든 현재 접속자를 왜 보여주는 것인지? 잘 모르겠네요. 내가 이해를 못하는 것인가????

 

우측 고정 접속자를 누르시면 패널이 오픈되요. 거기에 문제가 되면 그 부분을 캡쳐해서 보내주세요.

0a7f36b88935264f8daff61b7c18294f_1763167334_0428.png

@jihan006 

아 ~ 네 ~

. . .

아무리 검증해 봐도 ~ ㅠㅠ

캐시에서 가져오고 있고

웹소켓을 붙였다고 하더라도, 
UI가 결국 저 캐시을 다시 읽어오면 -


여전히 “최근 방문자 집계”일 뿐-
즉, 기존의 단순 ‘최근 몇 분 내 방문자 수’ 집계(DB 기록) 방식과 
   > 다르지 않다는 것입니다.

 

 '그누보드 소스'와의 차이는 '리로드 인터벌' 차이만 있을 뿐으로 보입니다. 

@jihan006 

 

무슨 말씀??? > 그럼 어디서 ??? 그누 플러그인인데~~~
 

연결된 링크에서 무엇을 확인하여야 > 실시간 접속자 ???


여기서 논하는 실시간 접속자가 뭔가요?
다시말해. 크라이언트에게 제시하는 '실시간 접속자'가 ???

. . .

아직도 캐시에서 가져오고 있고

웹소켓을 붙였다고 해도, 
UI가 결국 저 캐시을 다시 읽어오면
본질은 여전히 “최근 방문자 집계”일 뿐-
즉, 기존의 단순 ‘최근 몇 분 내 방문자 수’ 집계(DB 기록) 방식과 
   >>>  크게 다르지 않다는 것입니다.

"어디서 불러오느냐(소싱)”를 바꿔야 진짜 세션 단위 실시간이 될 겁니다.

 

. . .

그누의 '플러그인'이라 하며, 링크도 -

실시간 접속자를 어디에서 보여 준다는 것인지 ???

@glitter0gim 
https://designonex.com/ 에서는 
0a7f36b88935264f8daff61b7c18294f_1763167731_8961.png
파란 부분이고요.

https://currentusers.designonex.com/ 에서는
0a7f36b88935264f8daff61b7c18294f_1763167831_3073.png
이 부분입니다.

그누보드 플러그인 게시판에 상단에 공지는 다음과 같습니다.

"그누보드 호환이거나 독립적으로 실행되는 플러그인을 소개합니다."

 

c0d57b1044c07388b694a36255b4f7c2_1763170037_5637.png

c0d57b1044c07388b694a36255b4f7c2_1763170045_7184.png

c0d57b1044c07388b694a36255b4f7c2_1763170068_7809.png

c0d57b1044c07388b694a36255b4f7c2_1763170082_2044.png

 

※ ???

아직도 캐시에서 가져오고 있고

웹소켓을 붙였다고 해도, 
UI가 결국 저 캐시을 다시 읽어오면
본질은 여전히 “최근 방문자 집계”일 뿐-
즉, 기존의 단순 ‘최근 몇 분 내 방문자 수’ 집계(DB 기록) 방식과 
   >>>  크게 다르지 않다는 것입니다.

 

※ '그누보드 소스'와의 차이는 '리로드 인터벌' 차이만 있을 뿐 ㅠㅠ ※

 

"어디서 불러오느냐(소싱)”를 바꿔야 진짜 세션 단위 실시간이 될 겁니다.

@glitter0gim 그렇게 이해하신다면, 제가 무슨 답을 드릴수가 없네요. 그누보드 레거시 스타일에 익숙하시다면, 디비를 쓰시는게 맞을 듯 합니다.

사용자 체감에서 웹소켓 realtime에 최적화된 기술입니다.

감사합니다.

@glitter0gim 

아무튼 보셨던건 그누보드가 기본 제공하는 기능입니다.

https://trigger.glitter.kr/bbs/current_connect.php

 

이건데... 말씀하신것처럼 이건 DB에 기록하는거고 있으나마나죠. 그누보드에 내장된 이 기능이 사이트 접속자가 많아지면 사이트를 아주 느리게 만드는 주요 원인이죠.

@jihan006 그래서 사용자 그 부분을 브릿지 서버가 감당하겠다는 말입니다. ^^

조금만 시간을 내서 읽어만 주시면, 관련 내용이 있습니다.

관련 자료. https://designonex.com/bbs/board.php?bo_table=real_time_bridge&wr_id=4

 

음....? 그럼 저번에 대화에서도 서로 다른 눈높이 대화가 이루어졌었네요. 그런데, 그 부분이 문제였었는데... 

 

참고로 메시지 브릿지는 텔레그램처럼 저장하지 않는 구조입니다.

속도는 믿을 만합니다. 감사합니다.

@jihan006 아 그런가요 ^^;; 지금 프로그램 짤라 메뉴얼 만들라 디자인할라 정신이 없어서 헷갈렸습니다. 죄송합니다.

 

 

 

지금 논쟁의 핵심은 “웹소켓을 썼느냐”가 아니라  
"""UI가 어떤 데이터 소스에서 접속자 목록을 불러오느냐"""입니다.

 

제가 반복해서 말씀드리는 부분은 아주 단순합니다.

 

- 웹소켓을 붙였더라도  
- UI가 ‘현재 접속자 테이블(또는 캐시)’을 다시 로드한다면  
이건 구조적으로 “최근 방문자 목록 표시”와 동일하다는 것입니다.

 

즉,
- join/leave 이벤트에 의해 즉시 반영되는 ‘세션 기반 실시간 목록’이 아니라  
- 일정 주기로 서버 스토리지의 기록을 다시 읽어오는 “폴링 기반 UI”라는 뜻입니다.

 

이 차이는 기술을 조금이라도 다루는 사람이라면  
부정할 수 없는 아주 기본적인 구조적 차이입니다.

 

그리고 실제 테스트 결과도 이미 그렇게 나오고 있습니다 =

- 브라우저 새로고침 시 이전 세션이 즉시 사라지지 않음  
- IP 변경 시 중복 행이 유지됨  
- 탭 종료 후에도 잠시 동일 정보가 남아 있음  
>>> 이것은 100% “세션 테이블 기반 UI”와는 다른 동작입니다.

 

다시 강조하지만,
'실시간 현재 접속자'는 ‘웹소켓을 썼다’가 아니라  
세션 테이블을 UI가 직접 소싱해야 가능합니다.

 

그 구조가 바뀌지 않는 한,  
아무리 웹소켓을 도입했다 해도  
결과는 DB/캐시 기반의 “최근 접속자 집계 화면”과 동일한 형태일 수밖에 없습니다.

 

제가 드리는 피드백은 비난이 아니라 ‘팩트’입니다.

 

이 점은 더 이상 “레거시 스타일에 익숙하다”는 식으로  
회피하실 문제가 아닙니다.

 

실제 동작 결과가 가장 정확한 증거이기 때문입니다.

@glitter0gim 네 무슨 말씀인지 인지하고 있습니다. 지도 감사합니다. 보완해야 할 부분은 최대한 보완하도록 하겠습니다. 다시 한번 감사드립니다.

@ii0000039210 

 

이 플러그인은

‘실시간 상태 관리 브로커’가 완전히 갖춰진 인프라에서만
의도한 동작을 낼 수 있을 것입니다.

- 소싱이 완전히 실시간 세션 테이블 기반으로 잡혀 있을 경우에 한하여 -

@glitter0gim 네 맞습니다. 그 환경이 그누보드에도 잘 적용되도록 최선을 다해보겠습니다. 항상 이렇게 신경써주셔서 감사합니다.

전 솔직히 진심으로 감사드리고 있습니다. (__)

 

 

조금만 더 분명히 말씀드리겠습니다.

 

이 플러그인을 사용하는 서버 측 인프라 자체에
먼저 '소켓 세션 브로커(실시간 상태 관리 브로커)'가 갖춰져 있어야 합니다.

 

브로커가 없는 환경에서는,
아무리 플러그인만을 잘 붙인다해도 말씀하신 의미의 실시간 접속자는 구현될 수 없습니다.

 

. . .

현재 상황을 보면,
ii0000039210님의 환경에서도

아직 이 ‘실시간 상태 관리 브로커’ 프로세스가
구동되지 않은 상태로 보입니다.

 

브로커로 만든 서버 엔진입니다. 이름만 바꾸었을 뿐입니다.
https://sir.kr/g5_plugin/14327
링크 글에 하단쯤에 내용이 있을 것입니다.

그런데, 좀 이상합니다. 제 엔진에 특성을 아주 잘 설명해놨는데, 자꾸 똑같은 말씀을 하시는지, 이 엔진이 그누보드만 동작하는 엔진이 아닙니다. 

그래서, 유동 파라미터로 구성을 잡은 것이고, 프론트엔드 아키텍트 개발자들에게 한 수를 배우면서 같이 성장하고자 만든 서버엔진입니다. 

일단, 제가 만든 프론트엔드 기술이 떨어진다면, 님께서 다양한 아키텍트 기술로 전수해주시면 진심으로 감사드리겠습니다. 

일전에도 말했듯이, 지금 현재까지 제 프론트엔드 기술(딸리는기술 ㅠㅠ)입니다. 조금씩 나아가도록 저도 노력하겠습니다.

** 참고
아래 3개는 제가 지금 접속하고 있는 아이피이고, 아이디입니다. 허전하실까바^^

  • 116.124.128.175

  • 1.234.66.37

  • donex (115.23.70.228)

 

 

님의 표현들은 메시지 브로커 또는 Pub/Sub 서버에 대한 설명이지,
""""현재 실시간 접속자"""와는 전혀 다른 개념입니다.

 

다른 이의 서버에서 구동 가/부 전에, 
님의 서버에서 먼저 '현재 실시간 접속자' 표기 구현을 하세요.

 

카4 VPS 사용하시는 것 같은데,
님 서버의 소켓 브로커는 구동중인가요? 


구동 먼저 확인해 보세요.  
예)  https://msg.glitter.kr  - 제 인프라의 브로커(back-end)입니다.

 

. . .

“웹소켓을 사용했다 = 실시간 접속자다”라고 오해하신 듯합니다.
즉, 웹소켓 "기술" 자체를 이해한 것이 아니라,

단순히 ‘웹소켓 연결 = 실시간’이라고 착각하신 것으로 보입니다.

 

논란은 여기서 접겠습니다.

 

추후, 검증은 해드리겠습니다.

@glitter0gim 네 알겠습니다. 끝이 없겠네요. 졔 부족함을 너그럽게 이해해주세요

제가 4주후에 퇴원하는데 그 안에 할일이 많고, 빌린 노트북이라 언제 가져갈지 모르는 상황이여서요. 불편을 드려 진심으로 죄송합니다. 다음엔 자게에 글을 올리지 않겠습니다.

 

@glitter0gim 제 상식으론 좀 이해가 안되는 부분이 있어 제가 정말 잘못 알고 있을 것을 감안하여 ....

좋아하시는 AI 로 이해가 안되서...질문 해봤는데요..

 

역시나 같은 대답이 오네요...?

 

“실시간 업데이트” = 웹소켓 또는 SSE 중 하나는 무조건 필요하다

라는 답변을 해주는데요 ..

 

“웹소켓을 사용했다 = 실시간 접속자다”라고 오해하신 듯합니다. 이말의 저의가 무엇일까요 ????

 

그럼 반대로 질문드릴꼐요 "실시간 접속자"를 위하여 어떠한 스킬을 접근해야 할까요 ? 오히려, 이런 부분이 저기 작성하신 @ii0000039210 님께 도움되지 않을까요 ?

@미니님a 

 

개발자 커뮤니티에서 SNS 같은 댓글이군요!

 

논리적 타당성도 없고,

사실관계도 틀렸으며,

인신공격에 기반하고 있어,

응대의 가치가 없다 - 판단합니다.

 거봐요 그럴꺼라 예상했고 예상의 답글이에요 ㅎㅎ

고마워요!!! ㅎㅎㅎ 응대의 가치가 없다 판단!!!의 답글 소중하게 잘 받았습니다.

77년생 꼰대 김X휘씨..ㅎㅎㅎ

 속지마셔요 아무것도 모르시는 노친네에요 ㅎ

보다보다ㅋ 답답해서 댓글 드려요

실제로 SSE가 뭔지 웹소켓이 뭔지 모를뿐 더러. 저렇게 남겨도 무슨 소린지 모를거에오

한편으론 대단하셔요 실력자분이 이렇게 굽신되는 현실이 

@ii0000039210 대응하기 위해서 챗지피티를 활용한 모습을 ㅎㅎㅎ

7acdaee9c9e82f285f5e53677b353b3b_1763204282_5243.png

저분한테 진지하게 내기 하셔도 될껄요 ? 아..그래요 그럼 웹소켓 구현 눈으로 보여주세요 온라인 말고 ..만나서요 천만원드릴께요 해보세요 ㅎㅎㅎㅎ

@미니님a 

감사합니다. (__)

저는 괜찮습니다. 
이 일을 하다 보면, 종종 A4 한 장만 달랑 주고 비행기를 만들어 달라는 분들도 많이 만나게 됩니다.

그럼에도 불구하고, 상대방을 이해시키기 전까지, 혹은 제가 뒤로 한 걸음 물러서기 전까지는 항상 낮은 자세로, 정중한 마음으로 임하려고 합니다.
또한, 제가 틀렸는지 되돌아 볼 수도 있구요. 그래도, 제 편을 들어주시는 것 같아 기분이 좋습니다. 감사합니다.

 낮은 자세로.........는 좋은 마음입니다! 저도 그렇습니다.

단. 저 사람은 그냥 예외로 치셔도 됩니다.

정말 알고 답변 하시는  님과 모르고 ai"만" 믿고 있는 사람과는 차별이 있어야 해요

그 마음가짐도 한계점이 올꺼에요.....누구덕에!!

 

개인적으로 위에 답글로 인해 그 분의 답변이 달릴지 알수 없으나 얼마나 "노친네"스러운 답글과 "아는척의" 답글과 "유식한척"의 답글이 달릴지 알수 없지만 그저 그래요 ㅎㅎㅎ 전 많이 겪어봐서 ....참고 자료는 그 사람 게시글 참고 해보시면 될 것 같아요!!

미니님 제가 더 미안해질려고 합니다.

전 정말 괜찮습니다. 마음 푸시고, 편안한 밤 되시길 진심으로 바랍니다.

여기서, 한번만 멈춰주시면, 진심으로 감사하겠습니다.

 님 제가 댓글을 묘하게 달았네요. 미니님이 알려주셔서 이제야 확인했습니다. 아까는 서버 패치 중이여서 시간에 쫒기다 보니 이제야 댓글로 죄송함을 전합니다. 죄송합니다.

@ii0000039210 저에게 죄송해하실 필요 없으세요 원하시는데로 개발하시고 좋은 마음으로 공유하시면 됩니다. 단지 엮이지 마셨으면 좋겠습니다!!!! 오늘도 고생하셨고 편안한 밤 보내세요!

 

 

서비스 전체를 “외부 전용 실시간 엔진”으로 교체하는 등 ...

리소싱하셨군요.

 

응원합니다.

 

이젠, 

‘메시지 브릿지 서비스’가 외부 독립형 실시간 엔진으로 구동되면서
실시간 세션 테이블을 직접 소싱하려는 방향으로 보입니다.

 

※ 이제, 위에서 언급한 제 브로커가 실제 시현을 합니다.

- 동일 클라이언트에서 IP가 바뀔 때,

- 새로고침 시 해당 세션의 ‘점멸(깜박임)’ 반응
- 브라우저 탭을 닫을 때, 
- 접속 / 종료(연결 / 끊김)가 발생할 때,

이 모든 변화가 화면에 즉시 반영되는 형태가
‘실시간 세션 테이블’을 직접 소싱하는 접속자 UI가 어떤 것인지
보여주는 예가 될 것입니다.

 

03e72ba332e1a0ede2d03ff62cb298ae_1763218634_8223.png

03e72ba332e1a0ede2d03ff62cb298ae_1763218646_9647.png

 

910c80b06f59c34ceba1ed3bfa8f30d1_1763218796_3446.png

910c80b06f59c34ceba1ed3bfa8f30d1_1763218810_1162.png

 

※ 종료/접속이 발생해도 즉시 사라지거나 추가되는 UI가 아닙니다.

dd48dad6f6735b15334bf4485ebb336d_1763505943_2321.png

 

. . .

※ 4일 후, 재 검증 :

접속이 발생했는데도, 즉시 접속자 표기가 않되는 UI군요. ㅠㅠ

‘실시간 세션 테이블’을 직접 소싱한 접속자 UI가 아닙니다.

 

0df14097fb77a8455a156c3bbb60c2a3_1763507228_5185.png

@ii0000039210 

 

소켓 서버(designonex.com:14147)가 전혀 응답하지 않습니다.

소켓 객체는 생성되지만, 
실 연결은 모두 실패하고 있어 
엔진 측에서 포트 14147이 응답 않는 것으로 보입니다.

 

95d63a57921a30c03cc0f1b3cc6eb9c3_1763508774_5893.png

전체 200,426 |RSS
자유게시판 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT