Могу ли я использовать удаленный объект в flex для опроса java-класса на сервере (Blazeds)? Я хочу вернуть живую информацию в мою сетку данных - PullRequest
0 голосов
/ 09 декабря 2010

Итак, вот код, который у меня есть:

Flex Code

<?xml version="1.0" encoding="utf-8"?>

<fx:Declarations>


    <s:RemoteObject id="getStockPrices" result="result(event)" destination="blazeDsService"
                    endpoint="http://localhost:8400/flexspring/messagebroker/streamingamf"/>

</fx:Declarations>


<mx:DataGrid  x="10" y="295" width="910" height="211" creationComplete="getStockPrices.getQuotes();"
             dataProvider="{getStockPrices.getQuotes.lastResult}" >
    <mx:columns>
        <mx:DataGridColumn headerText="Stock Ticker" dataField="name" />
        <mx:DataGridColumn headerText="Price" dataField="price"/>
        <mx:DataGridColumn headerText="Hi" dataField="col3"/>
        <mx:DataGridColumn headerText="Low" dataField="col4"/>
        <!--<mx:DataGridColumn headerText="Adverage" dataField="col5"/>
        <mx:DataGridColumn headerText="Graph" dataField="col6"/>-->
    </mx:columns>
</mx:DataGrid>


<mx:Button label="Retrieve Stocks" click="retrieveStocks()"/>

А это JavaФайл класса.Это возвращает и arraylist:

package flex;

import java.util.ArrayList;import java.util.List;import java.util.Random;

import org.springframework.flex.remoting.RemotingDestination;import org.springframework.flex.remoting.RemotingInclude;import org.springframework.stereotype.Service;

import supportClasses.StockQuote;

@ Service

@ RemotingDestination

открытый класс BlazeDsService {

private static final String[] MASTER_LIST = {"C", "FNM", "FRE", "F", "GOOG", "AIG", "CSCO", "MSFT", "AAPL", "YHOO", "BSX", "PORT","F", "TNT", "ESP", "RET", "VBN", "EES"};


@RemotingInclude
public List<StockQuote> getQuotes(){
    List<StockQuote> list = new ArrayList<StockQuote>();
    Random r = new Random();
    for (String s:MASTER_LIST){
        StockQuote sq = new StockQuote();
        sq.setName(s);
        sq.setPrice(r.nextInt(50));
        list.add(sq);
    }
    return list;
}

}

В минуту необходимо нажать кнопку для обновления данных.Я хочу избавиться от этого и опрашивать информацию каждые х секунд.Можно ли это сделать?

Нужно ли менять настройки?создать шаблон публикации - подписки и использовать потоковые каналы?

Спасибо

1 Ответ

1 голос
/ 09 декабря 2010

Если вы просто хотите вызывать метод getQuotes каждые X секунд, вы можете использовать таймер во Flex, нет необходимости в обмене сообщениями.Если вы хотите получать уведомления об изменении стоимости акций, вы можете использовать потребителя на гибкой стороне, который подписан на тот же пункт назначения, где сервер добавляет сообщения.Пример этого можно найти в папке примеров BlazeDS, в папке traderdesktop.

...