반응형
728x90
반응형
Introduction
지난 iOS 및 nodeJS 통신에 이어 Android client와 nodeJS 서버와의 통신에 대해 알아보도록 하겠습니다. 간단하니깐 쉽게 쉽게 따라합시다.!! 안드로이드는 java로만 개발을 해왔기때문에 본 블로그에서는 코틀린(kt)의 경우 코드 수정이라기보다 테스트용으로만 확인하였습니다. 그래서 코드는 전체 다 올리도록 할테니, 필요에 따라 수정하여 사용하시기 바랍니다.
activity_main.xml
레이아웃은 상위 그림과 같습니다. 그리고 레이아웃 코드까지는 필요을것 같아 제외하도록 하겠습니다. 그리고 가장 중요한 안드로이드 기기 권한 설정을 추가해주시기 바랍니다.
AndroidManifest.xml
<uses-permission android:name="android.permission.INTERNET"/>
그리고 socket.io를 추가하기위해 아래와 같이 추가 하시면 됩니다.
build.gradle(Module: app)
// 생략 ...
dependencies {
ext.anko_version='0.10.8'
implementation "org.jetbrains.anko:anko:$anko_version"
implementation('io.socket:socket.io-client:1.0.0') {
exclude group: 'org.json', module: 'json'
}
implementation fileTree(dir: "libs", include: ["*.jar"])
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
implementation 'androidx.core:core-ktx:1.1.0'
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
}
그리고 안드로이드에서 socket.io를 이용하여 생성 후, IP, PORT를 작성하고 connect 를 수행하시면 됩니다. 그럼 서버에 접속한 결과가 보이게 되죠.
MainActivity.kt
// 생략 ...
class MainActivity : AppCompatActivity() {
val Tag = "MainActivity"
lateinit var mSocket: Socket
lateinit var username: String
var users: Array<String> = arrayOf()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
try {
mSocket = IO.socket("http://127.0.0.1:3014")
mSocket.connect()
Log.d("test", "socket.io connected !!");
} catch (e: URISyntaxException) {
Log.e("MainActivity", e.reason)
}
username = "testName";
mSocket.on(Socket.EVENT_CONNECT, onConnect);
mSocket.on("newUser", onNewUser)
mSocket.on("myMsg", onMyMessage)
mSocket.on("newMsg", onNewMessage)
mSocket.on("logout", onLogout)
// 생략 ...
}
val onConnect: Emitter.Listener = Emitter.Listener {
mSocket.emit("login", username)
Log.d(Tag, "Socket is connected with ${username}")
}
// 생략 ...
}
전체적인 소스코드는 아래 Reference 를 참조해주시기 바랍니다.
결과화면
App은 Layout화면과 같이 출력 됩니다. 그럼 서버에는 어떻게 나올까요?
접속된것 확인하였습니다. 이제 조금씩 수정하여 최종 App을 만들고나서 다시 포스팅 하도록 하겠습니다.
Reference
-
2017.09.05 Android socket.io 라이브러리를 사용해보자
-
2019..06.28 Android에서 node.js의 socket.io 사용해보기(1편)
-
2017.11.14 안드로이드 socket.io 소켓 통신 하기
728x90
반응형
'Develop > Android' 카테고리의 다른 글
Android VT-x disabled in BIOS 해결하기 (0) | 2020.12.19 |
---|---|
[java] ArrayList 안에 ArrayList 사용하자 (0) | 2020.06.10 |