# Android-WebSocketClient **Repository Path**: scrystally/Android-WebSocketClient ## Basic Information - **Project Name**: Android-WebSocketClient - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-04-15 - **Last Updated**: 2025-04-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Android WebSocket Client With Kotlin. [![StandWithPalestine](https://raw.githubusercontent.com/kimoandroid/StandWithPalestine/main/assets/palestine_badge.svg)](https://github.com/kimoandroid/StandWithPalestine) Web Socket Clinet Side For Android With Kotlin you can use this app with Ktor Server Side, Find Ktor Project Here: [Ktor WebSocket Server Side](https://github.com/kimoandroid/Ktor-WebSocketServer) [![StandWithPalestine](https://raw.githubusercontent.com/kimoandroid/StandWithPalestine/main/assets/palestine_banner.svg)](https://github.com/kimoandroid/StandWithPalestine/blob/main/Donate.md) # App Preview # Usage add this line into your `build.gradle` app. ```gradle dependencies { implementation 'org.java-websocket:Java-WebSocket:1.4.0' } ``` ## Add This Code In `MainActivity` ```kotlin import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.* import androidx.appcompat.app.AppCompatActivity import com.encept.websocket_client.databinding.ActivityMainBinding import java.net.URI import java.util.* class MainActivity : AppCompatActivity() { private lateinit var binding: ActivityMainBinding private lateinit var webSocketClient: ChatWebSocketClient private var AL: ArrayList> = ArrayList() override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = ActivityMainBinding.inflate(layoutInflater) setContentView(binding.root) val btnSend = binding.btnSend val editMsg = binding.editMsg val listview1 = binding.listview1 // load server url from strings.xml val serverUri = URI(getString(R.string.server_url)) webSocketClient = ChatWebSocketClient(serverUri) { message -> // display incoming message in ListView runOnUiThread { run { val _item = HashMap() _item["message"] = message AL.add(_item) } listview1.adapter = Listview1Adapter(AL) } } // connect to websocket server webSocketClient.connect() btnSend.setOnClickListener { try { // send message to websocket server webSocketClient.sendMessage(editMsg.text.toString()) editMsg.setText("") } catch (e: Exception) { e.printStackTrace() Toast.makeText(this, e.toString(), Toast.LENGTH_SHORT).show() } } } override fun onDestroy() { super.onDestroy() // close websocket connection webSocketClient.close() } class Listview1Adapter(private val _data: ArrayList>) : BaseAdapter() { override fun getCount(): Int { return _data.size } override fun getItem(_index: Int): HashMap { return _data[_index] } override fun getItemId(_index: Int): Long { return _index.toLong() } override fun getView(_position: Int, _v: View?, _container: ViewGroup?): View? { val _inflater = LayoutInflater.from(_container?.context) var _view = _v if (_view == null) { _view = _inflater.inflate(R.layout.cul, _container, false) } val text2 = _view?.findViewById(R.id.text2) if (text2 != null) { text2.text = _data[_position]["message"].toString() } return _view } } } ``` ## then, add this code at `activity_main.xml` ```xml