ExtJS Web套接字:Ext.ux.WebSocket eventName错误

时间:2013-04-30 12:56:53

标签: extjs websocket netty

我正在使用Ext.ux.data.proxy.WebSocket扩展程序,并具有以下商店定义:

Ext.define('ExtMVC.store.StatsWebSocket', {
    extend: 'Ext.data.Store',
    alias: 'store.statswebsocket',
    requires: [
        'Ext.ux.data.proxy.WebSocket'
    ],


    model: 'ExtMVC.model.Stock',

    proxy: {
        type: 'websocket',
        storeId: 'StatsWebSocket',
        url: 'ws://localhost:8087/ws',
        reader: {
            type: 'json',
            root: 'cis4-file-stats'
        }
    }
});

使用Chrome调试器,我可以看到数据实际上已被检索但不知何故它不会在我的网格中结束。商店在网格中使用的点如下所示:

initComponent: function(){


        var store = Ext.create('ExtMVC.store.StatsWebSocket');

        Ext.apply(this, {
            height: this.height,
            store: store,
           ....

我已按照[URL] https://market.sencha.com/extensions/ext-ux-data-proxy-websocket [/ URL]上的说明操作,但似乎没有任何效果。知道我可能做错了吗?提前谢谢。

每次浏览器从套接字服务器接收数据时,都会出现错误:

Uncaught Ext.ux.WebSocket.receiveEventMessage(): (No description provided)

被抛出。

Ext.ux.WebSocket扩展名的此函数发生错误:

fireEventArgs: function(eventName, args) {
  eventName = eventName.toLowerCase();   // ERROR occurs here
  var me = this,
  events = me.events,
  event = events && events[eventName],
  ret = true;
  if (event && me.hasListeners[eventName]) {
     ret = me.continueFireEvent(eventName, args || emptyArray, event.bubble);
  }
  return ret;
}

环境:ExtJS 4.1,Netty 3.5.0.Final。

仅供参考:我也发布了这个问题here

更新 我的问题已经由扩展的开发者Wilky在Sencha Forum上得到了回答。简而言之,套接字服务器恢复的JSON必须符合特定的结构。它必须有“事件”和“数据”节点:

{"event": "read", "data": [{....}, {....}]} 

“event”可以是任何CRUD方法;阅读,更新,销毁或创建。 “data”对应于特定于应用程序的数据。我需要做的只是改变我的JSON数据的结构。

1 个答案:

答案 0 :(得分:0)

我不知道它是否与您的问题有关,但我不认为storeId定义在内 代理可以工作。通常,它应该被定义为商店的配置选项,但在您的情况下,您在代理中使用它,该代理在商店中定义,因此您根本不需要它。