Je souhaite utiliser websocket pour implémenter la nouvelle fonction de rappel de message. Par exemple, un publie un article et quelqu'un répond à un message en ligne, un rappel de message apparaîtra, comme indiqué ci-dessous
.
Si vous utilisez directement session.getBasicRemote().sendText("haha"); dans la méthode onMessage() en arrière-plan, elle peut s'exécuter normalement, mais dès que vous utilisez la base de données, une exception de pointeur nul se produit..
Traitement js front-end :
Quelqu'un a-t-il rencontré le même problème ? S'il vous plaît laissez-moi savoir..
Ce pointeur nul n'a rien à voir avec weosocket Cela devrait être un problème avec l'injection de dépendances de votre instance messageService.
Vous devez vérifier si votre MessageService est hébergé par un conteneur IOC, c'est-à-dire si la classe est annotée avec @Service ou @Component.
Pendant le processus de développement, une classe qui n'est pas gérée par Spring (comme MessageController) veut appeler une méthode d'un objet géré par Spring (comme l'objet MessageService). Si nous appelons la méthode comme le code suivant, un). un pointeur nul apparaîtra anormal.
Solution :
Utilisez ApplicationHelper pour obtenir l'objet MessageService requis