0

私は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。

参考までに: この質問もここに投稿しました。

更新: 私の質問は、拡張機能の開発者である Wilky によってSencha Forumで回答されました。簡単に言えば、ソケット サーバーによって返される JSON は、特定の構造に準拠する必要があります。「イベント」ノードと「データ」ノードが必要です。

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

「イベント」は、CRUD メソッドのいずれかです。読み取り、更新、破棄、または作成。「データ」は、アプリケーション固有のデータに対応します。私がする必要があったのは、JSON データの構造を変更することだけでした。

4

1 に答える 1

0


あなたの問題と関係があるかどうかはわかりませんが、プロキシ内の storeId 定義が機能するとは思いません。通常、ストアの構成オプションとして定義する必要がありますが、あなたのケースでは、ストアで定義されているプロキシ内で使用するため、まったく必要ありません。

于 2013-05-02T01:15:26.793 に答える