URJC-CP / iudex

Next generation competitive programming judge
MIT License
2 stars 1 forks source link

API Websockets #12

Closed rmartinsanta closed 1 year ago

rmartinsanta commented 3 years ago

Actualmente para ver las actualizaciones de los problemas / submissions es necesario recargar la página, estaría bien si las actualizaciones fueran en tiempo real utilizando websockets. https://html.spec.whatwg.org/multipage/web-sockets.html

https://www.baeldung.com/java-websockets https://developer.mozilla.org/es/docs/Web/API/WebSockets_API

https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API/Writing_a_WebSocket_server_in_Java https://www.oscarblancarteblog.com/2017/02/23/websocket-con-java/ https://www.html5rocks.com/es/tutorials/websockets/basics/

Eventos en Spring https://www.baeldung.com/spring-events

rmartinsanta commented 3 years ago

https://spring.io/guides/gs/messaging-stomp-websocket/

rmartinsanta commented 3 years ago

@david8k calienta que sales

rmartinsanta commented 2 years ago

Clases de Mork que te pueden ayudar a configurarlo fácilmente: https://github.com/rmartinsanta/mork WebSocketConfig DefaultEventListener (ignora el MemoryEventStorage, es otra cosa totalmente diferente)

Añade la dependencia:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-websocket</artifactId>
</dependency>

Crea una clase base (JudgeEvent extends ApplicationEvent) y todos tus eventos personalizados extienden de esa. Para enviar un evento: ApplicationEventPublisher.publishEvent

En el cliente StompJS te puede hacer una idea el app.js, metodo connectAndSubscribe

rufinogs commented 2 years ago

Acabo de terminar esta tarea Echale un ojo a la pull request que he creado con la nueva ranchee y me decís :) @rmartinsanta @isaaclo97