11package net.xcreen.restsms.server
22
3+ import android.content.Context
4+ import android.net.nsd.NsdManager
5+ import android.net.nsd.NsdServiceInfo
6+ import android.util.Log
7+ import net.xcreen.restsms.AppContext
38import org.eclipse.jetty.server.Server
49import org.eclipse.jetty.servlet.ServletContextHandler
510import org.eclipse.jetty.servlet.ServletHolder
@@ -10,7 +15,9 @@ class SMSServer {
1015 var goodToken = " "
1116 var authEnabled = false
1217 private var jettyServer: Server ? = null
13-
18+ private var nsdManager: NsdManager ? = null
19+ private var nsdRegistrationListener: NsdManager .RegistrationListener ? = null
20+ private val TAG = " SMSServer"
1421 /* *
1522 * Get Server-Logger
1623 * @return serverLogging - ServerLogging-Object
@@ -38,6 +45,38 @@ class SMSServer {
3845 servletContextHandler.addServlet(smsWelcomeServletHolder, " /" )
3946 jettyServer!! .handler = servletContextHandler
4047
48+ // Start NSD
49+ val nsdServiceInfo = NsdServiceInfo ()
50+ nsdServiceInfo.serviceName = " RestSMS"
51+ nsdServiceInfo.serviceType = " _http._tcp."
52+ nsdServiceInfo.port = port
53+
54+ nsdManager = AppContext .appContext.getSystemService(Context .NSD_SERVICE ) as NsdManager
55+
56+ nsdRegistrationListener = object : NsdManager .RegistrationListener {
57+ override fun onServiceRegistered (serviceInfo : NsdServiceInfo ) {
58+ val registeredName = serviceInfo.serviceName
59+ Log .i(TAG , " NSD Service registered: $registeredName " )
60+ serverLogging!! .log(" info" , " NSD Service registered: $registeredName " )
61+ }
62+
63+ override fun onRegistrationFailed (serviceInfo : NsdServiceInfo , errorCode : Int ) {
64+ Log .e(TAG , " NSD Service registration failed: $errorCode " )
65+ serverLogging!! .log(" error" , " NSD Service registration failed: $errorCode " )
66+ }
67+
68+ override fun onServiceUnregistered (serviceInfo : NsdServiceInfo ) {
69+ Log .i(TAG , " NSD Service unregistered." )
70+ serverLogging!! .log(" info" , " NSD Service unregistered." )
71+ }
72+
73+ override fun onUnregistrationFailed (serviceInfo : NsdServiceInfo , errorCode : Int ) {
74+ Log .e(TAG , " NSD Service unregistration failed: $errorCode " )
75+ serverLogging!! .log(" error" , " NSD Service unregistration failed: $errorCode " )
76+ }
77+ }
78+ nsdManager!! .registerService(nsdServiceInfo, NsdManager .PROTOCOL_DNS_SD , nsdRegistrationListener)
79+
4180 // Start Jetty
4281 jettyServer!! .start()
4382 jettyServer!! .join()
@@ -53,6 +92,9 @@ class SMSServer {
5392 serverLogging!! .log(" info" , " Stopping Server..." )
5493 jettyServer!! .stop()
5594 }
95+ nsdRegistrationListener?.let {
96+ nsdManager?.unregisterService(it)
97+ }
5698 }
5799
58100 /* *
0 commit comments