Javascript Ext.net并行消息总线
当使用SignalR同时调用两个Ext.net MessageBusListeners时,我遇到了一些问题 例如,如果我在SignalR javascript函数中进行广播,如下所示:Javascript Ext.net并行消息总线,javascript,asp.net-mvc-3,extjs,ext.net,Javascript,Asp.net Mvc 3,Extjs,Ext.net,当使用SignalR同时调用两个Ext.net MessageBusListeners时,我遇到了一些问题 例如,如果我在SignalR javascript函数中进行广播,如下所示: <script> $(function () { var chat = $.connection.chatHub; chat.client.addNewMessageToPage = function (message) {
<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>
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);"
}) ,...)
我通过信号器广播两个快速呼叫,如:
Ext.net.Bus.publish("message1", '');
Ext.net.Bus.publish("message2", '');
这个测试的问题是第一个MessageBusListener的myJSfunction将被忽略,而第二个Listener的处理程序将被执行。
如果我更改MessageBusListeners的顺序,如下所示:
Ext.net.Bus.publish("message2", '');
Ext.net.Bus.publish("message1", '');
myJSfunction被执行,第一个messageBusListener的处理程序也被执行
这个案子有什么问题?我应该在多个Ext.net.Bus.publish之间同步吗?我不知道。如果您提供测试用例,我可以进行调查。是否需要信号员再现问题?我认为如果没有这个,它可能是可以复制的。如果可能的话,请在测试用例中去掉signer。即使没有signer,仍然会遇到同样的问题。如果您提供一个独立且可运行的测试用例来重现问题,我可以进行调查。这不是SignaR问题。我在messagebus上面临同样的问题,并且只发布第二个调用。我正试图找到解决方案……亲爱的@Daniel Veriga,我认为重现这个问题非常简单。只需逐个发布消息。谢谢你的时间。