diff --git a/apps/processer/src/main/kotlin/no/iktdev/mediaprocessing/processer/Implementations.kt b/apps/processer/src/main/kotlin/no/iktdev/mediaprocessing/processer/Implementations.kt index 5006da79..25065b38 100644 --- a/apps/processer/src/main/kotlin/no/iktdev/mediaprocessing/processer/Implementations.kt +++ b/apps/processer/src/main/kotlin/no/iktdev/mediaprocessing/processer/Implementations.kt @@ -15,4 +15,5 @@ public class DefaultProcesserConfiguration: Defaults() { @Configuration class SocketImplemented: SocketImplementation() { + override var additionalOrigins: List = ProcesserEnv.wsAllowedOrigins.split(",") } \ No newline at end of file diff --git a/apps/processer/src/main/kotlin/no/iktdev/mediaprocessing/processer/ProcesserEnv.kt b/apps/processer/src/main/kotlin/no/iktdev/mediaprocessing/processer/ProcesserEnv.kt index e80d3986..7f55e117 100644 --- a/apps/processer/src/main/kotlin/no/iktdev/mediaprocessing/processer/ProcesserEnv.kt +++ b/apps/processer/src/main/kotlin/no/iktdev/mediaprocessing/processer/ProcesserEnv.kt @@ -5,6 +5,8 @@ import java.io.File class ProcesserEnv { companion object { + val wsAllowedOrigins: String = System.getenv("AllowedOriginsWebsocket")?.takeIf { it.isNotBlank() } ?: "" + val ffmpeg: String = System.getenv("SUPPORTING_EXECUTABLE_FFMPEG") ?: "ffmpeg" val allowOverwrite = System.getenv("ALLOW_OVERWRITE").toBoolean() ?: false diff --git a/apps/processer/src/main/kotlin/no/iktdev/mediaprocessing/processer/Reporter.kt b/apps/processer/src/main/kotlin/no/iktdev/mediaprocessing/processer/Reporter.kt index ba2acfc2..47fe693a 100644 --- a/apps/processer/src/main/kotlin/no/iktdev/mediaprocessing/processer/Reporter.kt +++ b/apps/processer/src/main/kotlin/no/iktdev/mediaprocessing/processer/Reporter.kt @@ -3,6 +3,7 @@ package no.iktdev.mediaprocessing.processer import mu.KotlinLogging import no.iktdev.mediaprocessing.shared.common.SharedConfig import no.iktdev.mediaprocessing.shared.common.contract.dto.ProcesserEventInfo +import no.iktdev.mediaprocessing.shared.common.task.Task import org.springframework.beans.factory.annotation.Autowired import org.springframework.messaging.simp.SimpMessagingTemplate import org.springframework.stereotype.Service @@ -17,6 +18,23 @@ class Reporter() { private val log = KotlinLogging.logger {} + + fun encodeTaskAssigned(task: Task) { + try { + messageTemplate.convertAndSend("/topic/encode/assigned", task) + } catch (e: Exception) { + //log.error { e.message } + } + } + + fun extractTaskAssigned(task: Task) { + try { + messageTemplate.convertAndSend("/topic/extract/assigned", task) + } catch (e: Exception) { + //log.error { e.message } + } + } + fun sendEncodeProgress(progress: ProcesserEventInfo) { try { restTemplate.postForEntity(SharedConfig.uiUrl + "/encode/progress", progress, String::class.java) diff --git a/apps/processer/src/main/kotlin/no/iktdev/mediaprocessing/processer/services/EncodeService.kt b/apps/processer/src/main/kotlin/no/iktdev/mediaprocessing/processer/services/EncodeService.kt index f3007856..919cf9e4 100644 --- a/apps/processer/src/main/kotlin/no/iktdev/mediaprocessing/processer/services/EncodeService.kt +++ b/apps/processer/src/main/kotlin/no/iktdev/mediaprocessing/processer/services/EncodeService.kt @@ -56,6 +56,7 @@ class EncodeService( } override fun onTaskAssigned(task: Task) { + reporter.encodeTaskAssigned(task) startEncode(task) } diff --git a/apps/processer/src/main/kotlin/no/iktdev/mediaprocessing/processer/services/ExtractService.kt b/apps/processer/src/main/kotlin/no/iktdev/mediaprocessing/processer/services/ExtractService.kt index 54c4b5c9..d26f337b 100644 --- a/apps/processer/src/main/kotlin/no/iktdev/mediaprocessing/processer/services/ExtractService.kt +++ b/apps/processer/src/main/kotlin/no/iktdev/mediaprocessing/processer/services/ExtractService.kt @@ -55,6 +55,7 @@ class ExtractService( } override fun onTaskAssigned(task: Task) { + reporter.extractTaskAssigned(task) startExtract(task) } diff --git a/shared/common/src/main/kotlin/no/iktdev/mediaprocessing/shared/common/socket/SocketImplementation.kt b/shared/common/src/main/kotlin/no/iktdev/mediaprocessing/shared/common/socket/SocketImplementation.kt index 1f491212..0917572a 100644 --- a/shared/common/src/main/kotlin/no/iktdev/mediaprocessing/shared/common/socket/SocketImplementation.kt +++ b/shared/common/src/main/kotlin/no/iktdev/mediaprocessing/shared/common/socket/SocketImplementation.kt @@ -8,10 +8,14 @@ import org.springframework.web.socket.config.annotation.WebSocketMessageBrokerCo @EnableWebSocketMessageBroker open class SocketImplementation: WebSocketMessageBrokerConfigurer { + open val defaultOrigins = listOf("*://localhost:*/*", "http://localhost:3000/") + open var additionalOrigins: List = emptyList() override fun registerStompEndpoints(registry: StompEndpointRegistry) { + val origins = (defaultOrigins + additionalOrigins).toTypedArray() + println("Allowing the following origins for websocket connection\n\t${origins.joinToString("\n\t")}") registry.addEndpoint("/ws") - .setAllowedOrigins("*://localhost:*/*", "http://localhost:3000/") + .setAllowedOrigins(*origins) .withSockJS() }