Skip to content

Instantly share code, notes, and snippets.

View vaibhavgoyal09's full-sized avatar
:octocat:
Learning by building stuff

Vaibhav Goyal vaibhavgoyal09

:octocat:
Learning by building stuff
View GitHub Profile
data class Player(
val userName: String,
var socket: WebSocketSession,
val clientId: String,
)
fun Application.configureRouting() {
routing {
gameSocketRoute()
}
}
fun Route.gameSocketRoute() {
route("/v1/game") {
try {
webSocket {
}
} catch (e: Exception) {
e.printStackTrace()
} finally {
// Handle Socket disconnect
fun main() {
embeddedServer(Netty, port = port, host = "0.0.0.0") {
install(CallLogging)
configureSockets()
configureRouting()
configureSerialization()
configureSession()
}.start(wait = true)
}
fun Application.configureSockets() {
install(WebSockets) {
pingPeriod = Duration.ofSeconds(15)
timeout = Duration.ofSeconds(15)
maxFrameSize = Long.MAX_VALUE
masking = false
}
}
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
val ktor_version: String by project
val kotlin_version: String by project
val logback_version: String by project
plugins {
application
kotlin("jvm") version "1.5.31"
}
ktor_version=1.6.4
kotlin_version=1.5.31
logback_version=1.2.6
kotlin.code.style=official
koin_version=3.1.2
@AndroidEntryPoint
class MainActivity : AppCompatActivity() {
private lateinit var saveDataButton: Button
private lateinit var clearDataButton: Button
private lateinit var getDataButton: Button
private lateinit var inputName: EditText
private lateinit var inputAge: EditText
private val viewModel by viewModels<DataViewModel>()
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white"
tools:context=".presentation.activity.MainActivity">
<LinearLayout
@Module
@InstallIn(SingletonComponent::class)
object AppModule {
@Singleton
@Provides
fun provideDataStoreRepository(
@ApplicationContext app: Context
): DataStoreRepository = DataStoreRepositoryImpl(app)