我从一个非常流行的spring websocket演示中得到以下代码:
stompClient.connect({}, function(frame) {
setConnected(true);
console.log('Connected: ' + frame);
stompClient.subscribe('/user/queue/greeting', function(greeting) {
displayQueueMessage(greeting);
});
function sendName() {
var name = document.getElementById('name').value;
stompClient.send("/app/wsdemo", {}, JSON.stringify({
'name' : name
}));
}
在连接时,我们实际上订阅了一个队列并提供了一个回调方法。
现在,假设我有一个名为 getAllUsers
的websocket的服务器服务并假设我的前端有2个不同的组件, usersOnGeographicMap , usersOnDataTable 。
假设这2个视图组件想要使用服务器服务(getAllUsers)。 这两个组件每个都有一个回调函数,(一个在地理地图上显示用户,另一个回调函数在数据表上绘制)
现在的问题是我只订阅了一次队列,并为他提供了一个回调函数。那么我该如何解决这个问题?
在ajax中,它会非常容易,因为每个电话都有一个回叫: -usersOnGeographicMap.getUsersAjax(调用callback1) -usersOnDataTable.getUsersAjax(callback2)