实时股票观察与node.js角度和socket.io后端mysql和PHP

时间:2015-06-08 10:12:06

标签: angularjs node.js socket.io

我正在开发新项目,以显示用户的在线股票价格屏幕。我们已经在php,MySQL和AJAX的组合中使用了它,但它非常慢并且在服务器上生成了大量请求。所以我想改变这项技术。

我在MySQL中有数据库。一个过程已经更新:我的数据库中库存的最后价格。我获取这些记录并在屏幕上显示它们。在搜索Google之后,我觉得我必须使用socket.io,node.js和angularjs。在此之后,我计划以下内容:

  1. angular.js中的前端
  2. 带有nodes.js的Socket.io
  3. Nodes.js
  4. page.php每10秒在nodes.js上启动Restful API调用。该页面将从MySQL数据库中获取市场的所有符号(大约1000个)并发回一个json对象。 (我可以直接从node.js调用MySQL查询并收到json对象,这会减少中间的php吗?)
  5. Socket.io向网站上的每个客户端连接发出此查询。
  6. 然后角度前端将仅显示用户选择的符号并突出显示屏幕上的更改。
  7. 我有以下问题,因为我对上述技术知之甚少。

    1. 如何从socket.io接收json对象到angular.js?
    2. 如何使角度页面中的逻辑仅显示用户从1000个符号响应中选择的符号,并仅突出显示更改价格字段?
    3. 如何使用MySQL或php连接三台服务器?
    4. 有一件事是读中间件我可以使用expressJS.AS我想在AngularJS中我的前端如何在Angular和socket.io和node.js之间安装快递

1 个答案:

答案 0 :(得分:0)

  1. 您需要在您的网站上包含socket.io客户端代码,这是一个很好的示例,如何将外部库(如socket.io)转换为服务http://www.html5rocks.com/en/tutorials/frameworks/angular-websockets/

  2. 我认为这里最好的解决方案是通过socket.io订阅只有用户希望看到的元素,即所选元素的websockets,并且每分钟汇集一次,以便其他元素不会产生那么大的流量在套接字上

  3. 用户打开元素A

    socket.emit('subscribe', {add: 'A'})
    

    然后用户切换到元素B

    socket.emit('subscribe', {add: 'B', remove: 'A'})