【www.bbyears.com--ruby】
当下Ruby语言在程序员之间很是火热,开源社区也是不断的有新的Ruby应用。Thin 和 Sinatra 就是这百家争鸣时代的佼佼者。
不过新的事物总是有一个成熟期,就像任何升级都是有代价一样。Sinatra和Thin配合起来,在一些场景下存在问题。
笔者遇到的情况是这样的。
笔者的应用结构如下:
Web Browser --> NodeJS --> Thin --> Sinatra
问题就出现在 NodeJS --> Thin 这条路径上:Thin解析NodeJS发送的JSON数据出错,Thin收到的JSON数据,会在原始数据头尾分别加上一串数字,样例如下:
88
{"xx":"a","yy":"b"}
0
通过Google搜索解决方法,发现是NodeJS与Thin两者不兼容。解决这个问题的方法就是NodeJS和Thin选其一,后来笔者还是换掉了Thin,使用Ruby原生的Web容器Webrick。在Sinatra中使用Webrick的方式为:
rackup -p 8090 -s webrick