2019년 8월 1일 목요일

190801 안드로이드에서 short integer를 redis-cli을 이용하여 전송하기


스마트폰에서 직접 코딩하는 것이 힘드므로 로컬로 데이터를 보내주는 어플을 만들자.

안드로이드 스튜디오 새 프로젝트 -> 하얀 화면만 뜨는 프로젝트 생성

인터넷 사용 권한(?)을 주자



redis를 사용할 것이므로 app/build.gradle를 열어 dependencies의 맨 밑에 implementation ~~을 추가하자.

아래와 같이 redis publish를 테스트하기 위한 아주 기본적인 기능만 추가.
안드로이드에서는 short integer가 big endian이라 뒤집어주어야 한다.


위 코드를 잠깐 설명하자면,
버튼을 누르면 새 스레드를 생성해서 레디스 서버에 "mychannel"이라는 채널을 개설하여 숫자 리스트를 base64형태로 날린다.

activity_main.xml을 편집해야 하는데 하지 않아 버튼이 맨 위로 올라가버린다.


 로컬 컴에서 레디스 서버를 하나 띄운다.
띄울 땐 conf 파일을 따로 작성해서 ip는 0.0.0.0으로, 포트 번호는 7777로 주자.



아래와 같이 레디스 서버가 뜨고, 아래 창엔
redis-cli -h 0.0.0.0 -p 7777
을 실행하고 mychannel을 구독하게끔 설정

그리고 나서 앱의 버튼을 누르면 아래 캡처의 맨 아래 줄 처럼
1) "message"
2) "mychannel"
3) "4C6YOjB1\n"
이 뜬다.

이걸 파이썬에서 디코딩하면 제대로 데이터를 받았음을 확인할 수 있다.