try
{
mSocket.connect()
mSocket.emit(
"setting"
, token)
Log.d(TAG,
"onCreate: 소켓연결 성공"
)
mSocket.on(
"sendMessage"
, sendMessage)
val json = JSONObject()
json.put(
"token"
, token)
mSocket.emit(
"connects "
, json)
val userId = JSONObject()
userId.put(
"token"
, token)
userId.put(
"roomId"
, args.groupId)
mSocket.emit(
"join"
, userId)
}
catch
(e: JSONException) {
Log.d(TAG,
"onCreate: 에러 ${e}"
)
e.printStackTrace()
}
hasConnection =
true
chat_Send_Button.setOnClickListener {
sendMessage()
}
}
private
fun getToken() {
signViewModel.readToken.asLiveData().observe(
this
) {
token = it.token
}
}
private
fun setAdapter() {
binding.studyMeetingRecyclerView.apply {
adapter = mAdapter
showVertical(context)
}
}
private
var sendMessage: Emitter.Listener = Emitter.Listener { args ->
runOnUiThread {
Log.e(
"socket"
,
"sendMessage return : $${args[0]}"
)
val data = args[
0
] as JSONObject
val name: String
val message: String
val profile_image: String
try
{
Log.e(
"socket"
,
"sendMessage return : $data"
)
name = data.getString(
"name"
)
message = data.getString(
"message"
)
profile_image = data.getString(
"profileImg"
)
val format = ChatModel(name, message, profile_image,
"null"
)
mAdapter.addItem(format)
mAdapter.notifyDataSetChanged()
Log.e(
"new me"
, name)
}
catch
(e: Exception) {
Log.d(TAG,
"onNewMessage: 에러 ${e} "
)
return
@runOnUiThread
}
}
}
private
fun sendMessage() {
val message = binding.messageEdit.text.toString().trim { it <=
' '
}
if
(TextUtils.isEmpty(message)) {
return
}
binding.messageEdit.setText(
""
)
val jsonObject = JSONObject()
try
{
Log.d(
TAG,
"sendMessage: message ${message} groupId : ${args.groupId} token : ${token}"
)
jsonObject.put(
"token"
, token)
jsonObject.put(
"roomId"
, args.groupId)
jsonObject.put(
"message"
, message)
mSocket.emit(
"sendMessage"
, jsonObject)
}
catch
(e: JSONException) {
Log.d(TAG,
"sendMessage: 에러 ${e}"
)
e.printStackTrace()
}
Log.d(
"socket"
,
"sendMessage : object $jsonObject"
)
}
override fun onDestroy() {
super
.onDestroy()
mSocket.disconnect()
}