Skip to content

Commit

Permalink
业务逻辑优化,更新消息,清除之前的服务端和客户端,1.2版本完成。
Browse files Browse the repository at this point in the history
  • Loading branch information
lilongweidev committed Aug 30, 2022
1 parent 4d0ae41 commit 903c4d0
Show file tree
Hide file tree
Showing 23 changed files with 467 additions and 534 deletions.
2 changes: 1 addition & 1 deletion .idea/deploymentTargetDropDown.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 3 additions & 1 deletion .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 5 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,11 @@

查看Release下的版本,版本号由低到高,对应功能由少到多。想查看不同版本下的代码直接下载zip包即可,master分支下是当前最新的代码。

### Release1.2
1. 优化表情列表。
2. 增加消息返回时的ip地址。
3. 封装基类BaseSocketActivity并使用。

### Release1.1
1. 分离服务端和客户端。
2. 添加Emoji2使用,增加表情消息。
Expand Down
2 changes: 1 addition & 1 deletion app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ android {
minSdk 23
targetSdk 32
versionCode 1
versionName "1.1"
versionName "1.2"

testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
Expand Down
12 changes: 6 additions & 6 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,14 @@
android:theme="@style/Theme.SocketDemo"
tools:targetApi="31">

<activity android:name=".ui.ServerPlusActivity"
android:exported="false" />
<activity android:name=".ui.ClientPlusActivity"
android:exported="false" />
<activity
android:name=".ui.ClientActivity"
android:name=".ui.BaseSocketActivity"
android:exported="false"
android:windowSoftInputMode="adjustResize" />
<activity
android:name=".ui.ServerActivity"
android:exported="false"
android:windowSoftInputMode="adjustResize" />
android:windowSoftInputMode="adjustResize"/>
<activity
android:name=".ui.SelectTypeActivity"
android:exported="true">
Expand Down
16 changes: 6 additions & 10 deletions app/src/main/java/com/llw/socket/adapter/MsgAdapter.kt
Original file line number Diff line number Diff line change
Expand Up @@ -10,25 +10,21 @@ import com.llw.socket.databinding.ItemRvMsgBinding
/**
* 消息适配器
*/
class MsgAdapter(private val messages: ArrayList<Message>) :
RecyclerView.Adapter<MsgAdapter.ViewHolder>() {
class MsgAdapter(private val messages: ArrayList<Message>) : RecyclerView.Adapter<MsgAdapter.ViewHolder>() {

override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) =
ViewHolder(ItemRvMsgBinding.inflate(LayoutInflater.from(parent.context), parent, false))


override fun onBindViewHolder(holder: ViewHolder, position: Int) {
val message = messages[position]
if (message.type == 1) {
holder.mView.tvServerMsg.text = message.msg
if (message.isMyself) {
holder.mView.tvMyselfMsg.text = message.msg
} else {
holder.mView.tvClientMsg.text = message.msg
holder.mView.tvOtherMsg.text = message.msg
}

holder.mView.ivServer.visibility = if (message.type == 1) View.VISIBLE else View.INVISIBLE
holder.mView.ivClient.visibility = if (message.type == 1) View.INVISIBLE else View.VISIBLE
holder.mView.tvServerMsg.visibility = if (message.type == 1) View.VISIBLE else View.GONE
holder.mView.tvClientMsg.visibility = if (message.type == 1) View.GONE else View.VISIBLE
holder.mView.layOther.visibility = if (message.isMyself) View.GONE else View.VISIBLE
holder.mView.layMyself.visibility = if (message.isMyself) View.VISIBLE else View.GONE
}

override fun getItemCount() = messages.size
Expand Down
7 changes: 6 additions & 1 deletion app/src/main/java/com/llw/socket/bean/Message.kt
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
package com.llw.socket.bean

data class Message(val type:Int, val msg:String)
/**
* 消息
* @param isMyself 是否自身
* @param msg 消息内容
*/
data class Message(val isMyself: Boolean, val msg: String)
2 changes: 1 addition & 1 deletion app/src/main/java/com/llw/socket/client/ClientCallback.kt
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ package com.llw.socket.client
*/
interface ClientCallback {
//接收服务端的消息
fun receiveServerMsg(msg: String)
fun receiveServerMsg(ipAddress: String, msg: String)
//其他消息
fun otherMsg(msg: String)
}
3 changes: 1 addition & 2 deletions app/src/main/java/com/llw/socket/client/SocketClient.kt
Original file line number Diff line number Diff line change
Expand Up @@ -99,14 +99,13 @@ object SocketClient {
while (inputStream.read(buffer).also { len = it } != -1) {
receiveStr += String(buffer, 0, len, Charsets.UTF_8)
if (len < 1024) {
callback.receiveServerMsg(receiveStr)
socket.inetAddress.hostAddress?.let { callback.receiveServerMsg(it, receiveStr) }
receiveStr = ""
}
}
} catch (e: IOException) {
e.printStackTrace()
e.message?.let { Log.e("socket error", it) }
callback.receiveServerMsg( "")
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/java/com/llw/socket/server/ServerCallback.kt
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ package com.llw.socket.server
*/
interface ServerCallback {
//接收客户端的消息
fun receiveClientMsg(success: Boolean, msg: String)
fun receiveClientMsg(ipAddress: String, msg: String)
//其他消息
fun otherMsg(msg: String)
}
6 changes: 2 additions & 4 deletions app/src/main/java/com/llw/socket/server/SocketServer.kt
Original file line number Diff line number Diff line change
Expand Up @@ -95,8 +95,7 @@ object SocketServer {
}
}

class ServerThread(private val socket: Socket, private val callback: ServerCallback) :
Thread() {
class ServerThread(private val socket: Socket, private val callback: ServerCallback) : Thread() {

override fun run() {
val inputStream: InputStream?
Expand All @@ -111,14 +110,13 @@ object SocketServer {
while (inputStream.read(buffer).also { len = it } != -1) {
receiveStr += String(buffer, 0, len, Charsets.UTF_8)
if (len < 1024) {
callback.receiveClientMsg(true, receiveStr)
socket.inetAddress.hostAddress?.let { callback.receiveClientMsg(it, receiveStr) }
receiveStr = ""
}
}
} catch (e: IOException) {
e.printStackTrace()
e.message?.let { Log.e("socket error", it) }
callback.receiveClientMsg(false, "")
}
}
}
Expand Down
Loading

0 comments on commit 903c4d0

Please sign in to comment.