Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ExtJS Web套接字:Ext.ux.WebSocket eventName错误_Extjs_Websocket_Netty - Fatal编程技术网

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

ExtJS Web套接字:Ext.ux.WebSocket eventName错误,extjs,websocket,netty,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',

我使用的是
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;
}
环境:extjs4.1,Netty 3.5.0.Final

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

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

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

“事件”可以是任何CRUD方法;读取、更新、销毁或创建。“数据”对应于应用程序特定的数据。我所需要做的就是改变JSON数据的结构。

我不知道这是否与您的问题有关,但我不认为其中的storeId定义

代理将起作用。通常,它应该被定义为存储的配置选项,但在您的情况下,您在存储中定义的代理中使用它,因此您根本不需要它

谢谢。但改变这一点并不会带来任何改变。我跟着导游走。它使用同样的方法。实际错误会在该代理所基于的WebSocket(请参阅)的
receiveEventMessage()
函数中抛出。