node-ctp是一项开创性的工做,解决了CTP接口与node.js结合的问题,源代码在此:https://github.com/zoohanyoo/node-ctp。node
感谢zoohanyoo为此所作的努力,相信这其中有不少个不眠之夜,由于libuv和v8都足够复杂。node-ctp最突出的贡献是给出了node.js主线程与动态连接库so线程之间交互的一种可行的解决方案,目前尚不知道是否有其余更优的方案。git
node-ctp不完美的地方是该工具开发于两年前,具有雏形以后没有继续维护,没能跟上node.js快速前进的步伐。这样的后果是当我尝试用最新的node.js编译node-ctp的时候,会获得一系列使人精神崩溃的报错,好比这样:github
../src/wrap_trader.h:24:44: error: expected class-name before '{' token
class WrapTrader : public node::ObjectWrap {
^npm
还有这样:
../src/wrap_trader.h:30:37: error: 'Arguments' does not name a type
static Handle<Value> Connect(const Arguments& args); centos
在尝试修改源代码未果后,我决定还原node-ctp当年的开发环境,以此来避免编译时遇到的错误。如今看来,这无疑是十分明智的。api
node-ctp依赖的node.js的版本是0.10.26,npm版本是1.4.29,node-gyp版本是1.0.2,都是2014年的古董。幸运的是,这些古董在网上都可以下载到,说明node.js的生态环境是很是健康的,维护者已经知晓用户存在这样的需求。这是一个很是好的信号。node-ctp依赖的centos版本是6.x。tcp
0、准备centos 6.4系统。这个系统须要可以链接到互联网,这是基本要求。工具
一、node.js的安装过程:测试
下载node.js的0.10.26版本(感谢淘宝)ui
./configure
make
make install 须要root权限
make test
二、npm的安装过程:
下载npm的1.4.29版本(感谢Jack Ma老板)
./configure
make
make install 须要root权限
三、node-gyp的安装过程:
首先注册一个淘宝的npm镜像,这样可以加快安装速度
npm config set registry https://registry.npm.taobao.org
npm install -g node-gyp@1.0.2 须要root权限,-g的意思是将node-gyp设为全局命令,能够像node同样直接运行
四、node-ctp的build过程:
首先编辑binding.gyp文件,注意node-ctp中缺失.so文件,建议从新下载ctp api包,并将其路径设置在binding.gyp文件中
node-gyp rebuild --nodedir ~/path/to/node-v0.10.26 此处设置了node.js源代码路径,编译的时候须要node的头文件
五、安装完毕后能够进行基本的测试
为此可在www.simnow.com.cn上申请一个ctp测试帐号,并设置密码,这个密码就是ctp的登录密码。下载一个快期桌面终端,测试帐号和密码的有效性。下单时会提示:“下单失败: CTP:该交易席位未链接到交易所”,尚不知缘由。
修改trade_confirm.js,填入交易系统tcp地址(simnow提供)、帐号、密码、会员号(9999),而后运行:
node trade_confirm.js
观察输出结果。
至此,node-ctp的编译工做完成。
上述工做耗时一天,整体感受还算顺利,尤为是node的几个老版本工具都很是容易找到,配置过程也很简便,遇到问题在网上能搜到解决方法,这说明node.js的整个生态环境是完备的,用户也不少。目前的认识是,node-ctp完成了最核心的功能,即ctp线程与node线程的通讯,其余方面我还须要花时间进一步梳理。
EOF