V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
callmexiaoliu
V2EX  ›  Android

股票行情 app,是不是要用 socket?

  •  
  •   callmexiaoliu · 2016-10-22 15:09:49 +08:00 · 11079 次点击
    这是一个创建于 2984 天前的主题,其中的信息可能已经有所发展或是发生改变。

    小白一个。 我想搞一个实时的行情 app 练练手,找到了一些可以用的免费 api 来取数据。(聚合,新浪,雅虎什么的) 真要写的时候遇到一个问题,我发一次请求只能从他们那里得到一个时间点的数据,比如发送

    http://web.juhe.cn:8080/finance/stock/hs?gid=sh601009&key=APPKEY

    它只能返回 { "resultcode":"200", /返回码, 200:正常/ "reason":"SUCCESSED!", "result":[ { "data":{ "gid":"sh601009", /股票编号/ "increPer": "9.91", /涨跌百分比/ "increase": "43.99", /涨跌额/ "name":"南京银行", /股票名称/ "todayStartPri":"8.26", /今日开盘价/ "yestodEndPri":"8.26", /昨日收盘价/ "nowPri":"8.37", /当前价格/ "todayMax":"8.55", /今日最高价/ "todayMin":"8.25", /今日最低价/ "competitivePri":"8.37", /竞买价/ "reservePri":"8.38", /竞卖价/ "traNumber":"34501453", /成交量/ "traAmount":"290889560", /成交金额/ "buyOne":"10870", /买一/ "buyOnePri":"8.37", /买一报价/ "buyTwo":"177241", /买二/ "buyTwoPri":"8.36", /买二报价/ "buyThree":"92600", /买三/ "buyThreePri":"8.35", /买三报价/ "buyFour":"87200" /买四/ "buyFourPri":"8.34", /买四报价/ "buyFive":"113700", /买五/ "buyFivePri":"8.42", /买五报价/ "sellOne":"47556", /卖一/ "sellOnePri":"8.38", /卖一报价/ "sellTwo":"103057", /卖二/ "sellTwoPri":"8.39", /卖二报价/ "sellThree":"186689", /卖三/ "sellThreePri":"8.40", /卖三报价/ "sellFour":"49000", /卖四/ "sellFourPri":"8.41", /卖四报价/ "sellFive":"214535", /卖五/ "sellFivePri":"15.21", /卖五报价/ "date":"2012-12-11", /日期/ "time":"15:03:06", /时间/ }, "dapandata":{/大盘数据可通过字段 type 单独查询/ }, "gopicture":{

    "minurl":"http://image.sinajs.cn/newchart/min/n/sh601009.gif",/*分时 K 线图*/
        "dayurl":"http://image.sinajs.cn/newchart/daily/n/sh601009.gif",/*日 K 线图*/
        "weekurl":"http://image.sinajs.cn/newchart/weekly/n/sh601009.gif",/*周 K 线图*/
        "monthurl":"http://image.sinajs.cn/newchart/monthly/n/sh601009.gif"/*月 K 线图*/
    }
    

    }] } ----------------------------------深(上)证指数示例------------------------------------------------------------------ { "error_code": 0 "reason": "SUCCESSED!", "result": { "dealNum": "24388041799",/成交量/ "dealPri": "340674441059.270",/成交额/ "highPri": "10357.417",/最高/ "increPer": "-0.46",/涨跌百分比/ "increase": "-43.756",/涨跌幅/ "lowpri": "10121.741",/最低/ "name": "深证成指",/名称/ "nowpri": "10270.855",/当前价格/ "openPri": "10200.547",/今开/ "time": "2015-09-22 14:45:25",/时间/ "yesPri": "10176.727"/昨收/ }, }

    只有“"time":"15:03:06",/时间/”和“"nowPri":"8.37"/当前价格/”,那如果我想得到下一秒的价格,岂不是还要再发一次请求?

    即便 api 免费调用,这也太麻烦了吧? 有没有什么其他的办法? 多谢各位。。。

    7 条回复    2016-10-22 16:56:57 +08:00
    ss098
        1
    ss098  
       2016-10-22 15:54:50 +08:00
    很难有好的解决办法。

    通常 API 接口都是你去主动抓取,很少有提供通知的。
    bombless
        2
    bombless  
       2016-10-22 16:03:48 +08:00 via Android
    你自己搞服务端聚合数据呗
    callmexiaoliu
        3
    callmexiaoliu  
    OP
       2016-10-22 16:06:01 +08:00
    @ss098 如果只用这些 api 的话,那就是每一秒都去提请数据了?
    对手机 app 来说是很费电费流量的吧?
    callmexiaoliu
        4
    callmexiaoliu  
    OP
       2016-10-22 16:07:02 +08:00
    @bombless 搞一个服务端来取这些数据,再推个 app ?
    bombless
        5
    bombless  
       2016-10-22 16:10:37 +08:00 via Android
    des
        6
    des  
       2016-10-22 16:18:04 +08:00 via Android
    秒级操作就非得 app 每秒去抓一次,服务器每秒抓一次, app 一次拉一分钟也算是时实了吧?
    callmexiaoliu
        7
    callmexiaoliu  
    OP
       2016-10-22 16:56:57 +08:00
    @des 如果一秒抓取一次的话会不会出现这种情况? 12:00:00 的时候去抓取一次, 12:00:01 的时候也去抓取一次,然而 12:00:00 的返回数据比 01 的那次慢。是不是我想的复杂了?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1647 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 16:42 · PVG 00:42 · LAX 08:42 · JFK 11:42
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.