मैं एक सरल वेब सॉकेट संचार किया था के साथ मेरी WebSocket सर्वर में घटना सदस्यता लेते हैं, निम्नलिखित इस https://spring.io/guides/gs/messaging-stomp-websocket/कैसे वसंत 4, STOMP और sock.js साथ स्प्रिंग 4
अब मैं सरल चैट करने के लिए इसे अपग्रेड करना चाहते हैं पर कब्जा करने की। मेरी समस्या यह है कि जब उपयोगकर्ता नए चैट रूम की सदस्यता लेता है, तो उसे पिछले संदेश मिलना चाहिए। मुझे नहीं पता कि इस पल को कैप्चर करने के लिए जब उसने संदेश की सूची भेजने के लिए सदस्यता ली थी।
मैं एनोटेशन @MessageMapping उपयोग करने की कोशिश, लेकिन कोई सफलता नहीं पहुंचे:
@Controller
public class WebSocketController {
@Autowired
private SimpMessagingTemplate messagingTemplate;
@MessageMapping("/chat/{chatId}")
public void chat(ChatMessage message, @DestinationVariable String chatId) {
messagingTemplate.convertAndSend("/chat/" + chatId, new ChatMessage("message: " + message.getText()));
}
@SubscribeMapping("/chat")
public void chatInit() {
System.out.println("worked");
int chatId = 1; //for example
messagingTemplate.convertAndSend("/chat/" + chatId, new ChatMessage("connected"));
}
}
तब मैं बनाया है कि:
@Controller
public class ApplicationEventObserverController implements ApplicationListener<ApplicationEvent> {
@Override
public void onApplicationEvent(ApplicationEvent applicationEvent) {
System.out.println(applicationEvent);
}
}
यह काम करता है, लेकिन सभी संभव घटनाओं कब्जा, मैं ' टी लगता है कि यह एक अच्छा अभ्यास है।
तो, मेरे प्रश्न को दोहराया जा सकता है: प्रारंभिक डेटा कैसे भेजा जाए जब उपयोगकर्ता sth से संतुष्ट हो?
मुझे यहां एक समान प्रश्न मिला: http://stackoverflow.com/questions/24795340/how-to-find-all-users- सदस्यता-to-a-topic-in-spring-websockets – sinedsem