私は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 データの構造を変更することだけでした。