socket.io 를 이용한 채팅 만들기 2022 2차

 


vs code 에서 chat-example 을 열었다.


1차에 있는 nodejs 소스를 적당히 수정해 보도록 한다.


원본 소스는 아래에 있다. 

https://gist.github.com/joyceHong0524/9f7c1d043e18aab20383ff051c9364f2#file-index-js

그냥 full source github 주소를 링크하기로 한다.


내가 만든 수정 소스 링크 이다. 

wkyoon/chat-example-ex-login-room (github.com)



안드로이드 어플을 하나 만든다.


socket.io client 를 만들기 위해서 implement 를 추가해야 하는데 

이것도 버전이 2022년 기준으로 확인해 보면

socket.io server version 에 따라 설치하는 것이 달라 지기 때문에 확인해 보았다.


https://socketio.github.io/socket.io-client-java/installation.html


socket.io server 버전이

4.x 이기 때문에 client 도 2.x 버전을 이용해야 한다.



gradle 에 추가한다.



android manifest 에 인터넷을 추가한다.

    <uses-permission android:name="android.permission.INTERNET" />



원래 소스를 확인해 보니 activity 이동으로 만든 소스이다.

이건 요즘 좀 그렇다. ( 내기준임) 지금은 activity 이동하는 형태로 안 만든다.

android studio setting 이 default 가 viewbinding 이다. 

그래서 viewbinding 이 되도록 구성해 보기로 한다.

일이 커진다.


기존 소스의 github 주소

https://github.com/joyceHong0524/socket.io_android

필요한 부분만 가져와서 적용하기로 한다.


기존 소스 확인 한 결과 이 걸 그냥 사용할수는 없을것 같다.

activity to activity 로 동작하면 된다고 하시는 분은 그냥 기존 소스를 그대로 사용하시면 된다.


일단 소스가 좀 시간이 지난 소스이니깐 recyclerview 를 현재 마지막 버전으로 적용한다.

https://developer.android.com/jetpack/androidx/releases/recyclerview#version_120_3



채팅의 대화리스트를 recyclerview 로 구현하고 그에 해당하는 chatroomadapter를 그대로 가져와서 사용한다.

Models.kt 에 있는 data class 3개는 파일 3개로 분리한다.


view binding 이 적용된 예제기이 때문에 이전에 있는 view를 사용하는 adapter 에서 

binding 을 적용한 adapter 로 변경하기로 한다.

https://cliearl.github.io/posts/android/viewbinding-recyclerview/


짜증난다.

binding 적용할려고 하니 single binding 이 아니고 multi binding 을 적용해야 한다.

chatting type 에 따라 viewtype 이 다르기 때문에 view 를 다르게 표현하기 위해서

viewbinding item 이 변경되어야 하는 이슈가 있다.


일단 모르겠으니

recyclerview 를 적용하는 것 부터 확인하고 

그리고, binding 을 적용하는 것을 확인하고 

마지막으로 multi view binding 을 하도록 하겠다.

( databinding 까지 하면 좋겠지만 일단 view binding 하고 adapter 에 view binding 적용하는것 부터 찾아보기로 한다.)









댓글

이 블로그의 인기 게시물

mount 명령 ( 읽기 권한만 있는놈 쓰기 권한 주기 )

c# mqtt client example

비글본 블랙 고정 아이피 설정