在使用SignalR同时调用其中两个时,我对Ext.net MessageBusListeners有一些问题。
例如,如果我在SignalR javascript函数中广播如下:
<script>
$(function () {
var chat = $.connection.chatHub;
chat.client.addNewMessageToPage = function (message) {
console.log('publish: ' + message);
Ext.net.Bus.publish(message, '');
};
// Start the connection.
$.connection.hub.start().done(function () {
console.log("start connection");
});
});
</script>
我定义了两个带有两个不同商店的messageBusListeners,如下所示:
Store().ID("Store1").MessageBusListeners(new MessageBusListener
{
Name = "message1",
Fn = "myJSfunction",
Single = true
},...)
Store().ID("Store2").MessageBusListeners( new MessageBusListener()
{
Name = "message2",
Handler = "Ext.Msg.notify('Notification', 'message2);"
}) ,...)
我通过SignalR广播两个快速呼叫,如:
Ext.net.Bus.publish("message1", '');
Ext.net.Bus.publish("message2", '');
此测试的问题是第一个MessageBusListener的“myJSfunction”将被忽略,而第二个侦听器的处理程序将被执行。 如果我更改MessageBusListeners顺序,如:
Ext.net.Bus.publish("message2", '');
Ext.net.Bus.publish("message1", '');
执行“myJSfunction”并执行第一个messageBusListener的处理程序。
此案有什么问题?我应该在许多Ext.net.Bus.publish?
之间进行同步