본문 바로가기

webchat8

[웹챗] 디자인 수정 & 기능추가 & 소켓이벤트 변경 먼저 기존 디자인의 레이아웃 가이드라인들을 모두 지웠다. 그리고 각 사용자의 메시지를 식별하기 위해서 그 클라이언트의 socket id를 표시하도록 했다. (타인의 메시지만 보이게 카카오톡을 참고하였다.) 많이 깔끔해진거 같다. 추가적으로 채팅 모듈이 아닌 데모버전에서는 width사이즈를 3가지를 선택하여서 채팅창이 반응형으로 변하는 것을 볼 수 있도록 추가했다. 기본적으로 채팅창 구성요소는 모두 플렉스 레이아웃에 반응형을 기준으로 했기 때문에 극한의 디바이스 환경이 아닌 이상 어디서든 무난하게 맞춰진다. 웹챗 데모 버전 링크 https://yoonjonglyu.github.io/webChat/ webChat-demo yoonjonglyu.github.io 소켓 서버 연결에 대한 피드백을 제공하기 위해서.. 2021. 12. 13.
[웹챗] nest 소켓 서버 헤로쿠 배포 & 프론트 깃페이지 배포 벡엔드 heroku를 통한 배포가 처음은 아니었지만(지금은 무기한 보류 중인 블로그 벡엔드를 node로 만들어서 배포했었다.) nest.js + socket.io로 배포하는 건 처음인 데다가 오래전 일이다 보니 잘 생각이 안 나서 조금 헤맸다. nest.js 자체의 특징인 ts기반의 배포 전 빌드 우선이라는 특징 때문에 기존 제네레이터로 만든 구성의 세팅으로는 바로 배포가 안된다. 그래서 npm 명령어 스크립트에 아래 2줄을 추가 해줄 필요가 있다. "prestart:prod": "rimraf dist && npm run build", "web": "npm run start:prod", web이라는 명령어로 start:prod명령어를 실행하는 것과 그전에 파일들을 최신화하는 것이다. 이후 실행되는 sta.. 2021. 12. 5.
[웹챗] 기본 테마 & 시스템 메시지 채팅창 시스템 메시지로 채팅 입장과 퇴장에 대한 알림을 넣었다. 그리고 기존 스타일들을 이제 어느 정도 잡아 줘야하기에 색배합에 관한 사이트를 참고하면서 세부적인 스타일을 잡아줬다. 솔직히 너무 볼품없긴하다. 디자인 고자가 CSS프레임워크를 쓰지 않다보니 그런듯 분명히 카카오톡을 나름 벤치마킹 했는데 문제는 전혀 그런 느낌이 안든다. 디자인의 오묘함이란... 추가적으로 메시지 전송시 스크롤이 생기면 해당 부분을 자동으로 포커싱 안되는 것을 일단 자신의 메시지가 전송되었을때만 스크롤 해주는 기능을 넣었다. 카카오톡을 살펴보니 스크롤을 감지해서 조금 더 세부적으로 처리하는 거 같다. 추후 수정해야할듯 // 자기가 최신 메시지를 보낼때 자동 스크롤하기 const Room: any = useRef(null); .. 2021. 12. 3.
[웹챗] 채팅 메시지 성능 이슈 해결 & 채팅 메시지 기본 UI ui의 경우 인라인 스타일로 위와 같이 간단히 잡았다. 지금은 먼저 간단히 본인이 보낸 메시지의 경우 토마토색(주황색)으로 다른 사람이 보낸 메시지의 경우 하얀색으로 배경을 통해서 표시 하지만 여러 사람이 동시에 채팅을 보낼 경우 각 유저의 고유한 식별 아이디나 프로필 같은 부분이 필요하다. 그외에는 기본적인 스타일 조금 더 가다듬고 사용자가 커스텀 할 수 있게 해주면 될거 같긴하다. 그리고 채팅창 인원목록 뿐 아니라 사용자 입출입 메시지 기능을 만들어 줘야할거 같다. 기존에 지나간 로그들을 다운로드 해서 보여주지 않기 때문에 채팅 연결이 끊기거나 재연결될때 해당 사용자는 이전의 메시지를 볼 수 없는게 서로간의 오해의 소지가 있어서 서로간의 연결 및 연결해제시 메시지를 보내는 기능이 필요하다. SendM.. 2021. 11. 30.