<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>http://jackxiang.com/post//</link>
<title><![CDATA[[随意调侃]erlang，golang，nodejs 都为html5来奔跑之我见。]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[Unix/LinuxC技术]]></category>
<pubDate>Fri, 11 Jan 2013 09:22:44 +0000</pubDate> 
<guid>http://jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	&nbsp;&nbsp; node.js解决了异步问题，但没解决并行问题，于是有疯子想把node.js用C扩展方式做成并行，为什么呢？<br/>是因为Erlang和Golang是未来的主流语言，而nodejs是单线程而不能很好利用多核CPU的问题，于是有人想给它增强能力（尽管有cluster），<br/>也想学go和erlang从语言层面上来解决问题。<br/>但是现在GO语言和erlang已经在语言层面解决了并行问题，我觉得主要是多核心的利用，并行是必然趋势。<br/>自己要做这些事情得自己学会进程调度，队列，信号等，像erlang和go，程序员不需要关心进程线程调度的问题，它在底层就封装好了。<br/>之所以node.js有很多人学是因为，node.js主要是语言是JS。这让很多有前端经验的人可以很空易掌握。但是node.js也有些问题的，比如网络模块缓冲区总是64k。<br/>如果要对核心的东西做调整还是挺麻烦的。你可用js写游戏可以跨所有的手机平台包括网页版，所以node.js也是个工具，不是语言。不是node.js火，是js火，搭了html5的顺风车。<br/>新在啊儿呢，这个Nodejs：js基本上一个有任意语言经验的coder可以在一周内上手做项目。只要提供好项目管理,把规范之类的做好。成本之低。如果是c++：c++我花了两周一路是坑。<br/>都是在html5上下功夫，不过问题是， html5游戏的商业模式好像不太清晰。个人觉得吧，做终端， 老老实实用原生语言去做， html5带来的好处好像意义没那么大。<br/>现在html5这个工作组在做一个事情就是给-x绑定一个js引擎。用c++提供图形渲染。js处理业务逻辑。我跑过几个demo，性能还不错。<br/>所以，我一直对html5持谨慎态度，技术也不热衷，看了看概念，大概了解了下。然后结论是：观望，还不成熟。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp; 有人说最近几年游戏火，lua脚本就火了，和js一样很像python那样的胶水语言，能在线更新更能兼容浏览器，lua跟我刚说的Js一样的概念。 lua去调原生的c++，lua只是执行逻辑处理。他也是在app里集成了一个lua的引擎，还给lua绑定了一些cocos2d的接口，。lua现在用的已经很成熟了，多如牛毛，不多讲。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Writen by ：jackxiang&nbsp;&nbsp; 2013-01-11 17：30：00<br/><br/><br/>附录：<br/>嗯，node.js可以实现那个http王浏览器推数据么？<br/>跟nodejs没太大关系吧。都可以实现<br/>那前端怎么搞？取数据时我一直觉得是个难题。<br/>一个长链接挂着。<br/>有数据来就处理罗<br/>浏览器那边也这样子搞？<br/>websocket&nbsp;&nbsp;向浏览器推 后端可以使用nodejs 加前端使用socket.io 可以实现<br/><br/>如果php用的多 后端可以使用&nbsp;&nbsp;https://github.com/bergie/dnode-php&nbsp;&nbsp;也是事件模型 跟node一样<br/>也可以使用 https://github.com/cboden/Ratchet&nbsp;&nbsp;用php实现的websocket server，通信协议使用wamp<br/>http://socketo.me/ http://wamp.ws/&nbsp;&nbsp;可以看看<br/><br/>如果真的要实现 server-&gt;client传数据，不建议直接采用socket.me上面的js库，desktop上面浏览器对web socket支持的不错，但是无法兼容android浏览器，所以可以使用socket 支持flash socket.<br/>socket.io<br/><br/>启一个socket tcp 也没什么，XMPP的server，openfire 号称单机支持30万长连接<br/>看到composer.json了吗<br/>去查查 是什么东西<br/>一个php的标准库<br/>很好很强大的<br/>这是个好玩意儿，比pear 强几百倍<br/>现在多数优秀开源库都能用 composer 装<br/>我还没用完全采用composer&nbsp;&nbsp;<br/>是用libevent + stream扩展函数来实现底层的<br/><br/>网络编程不熟悉的&nbsp;&nbsp;建议还是不要使用事件模型写程序<br/>几个核几个worker，就像nginx一样。<br/>好好研究下nginx source <br/>我主要是从 下面的员工说的&nbsp;&nbsp;因为事件的机制不好控制，没有顺序执行起来方便易编写，需要员工的水平比较高。<br/><br/>的nodejs 用了下，有好的地方 也有让人很不爽的地方。感觉不是很稳定，多线程fork出来的程序，采用net网络操作时，经常会崩掉<br/><br/>写一个高性能的Server还是挺困难的，像Nginx都用了很多atomic库操作，还有内嵌很多汇编<br/><br/>目前不需要高性能，用做游戏服务端，维护一二千人在线。<br/>足够了<br/> go语言看起来不错，没有广泛使用案例呀。<br/><br/> 个人感觉，server再强悍，如果后面挂的业务逻辑卡一点，优势一下就木有了<br/><br/> Go底层是基于epoll的全异步模式，但上层是同步的语法，阻塞时自动切换协程<br/><br/> 像我写的swoole这个Server，虽然性能很高，其实极端情况下可能会出错。node.js问题也是有的，这里坑很多的。什么时候把这些填平了，才比较安全&nbsp;&nbsp;socket都是带缓存区的，假设某个fd缓冲区满了，就要丢数据了<br/>这里缓冲区设大会有问题，设小了丢数据。<br/>呵呵，事件通知机制在更高并发的Server里就是累赘了<br/>所以我们有的Server是直接轮询的，不做通知机制<br/><br/>
]]>
</description>
</item><item>
<link>http://jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论] [随意调侃]erlang，golang，nodejs 都为html5来奔跑之我见。]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>