Month: June 2013

apache httpd: A typical virtualhost

引用 <VirtualHost myjoomla.kent.net:80>         ServerName myjoomla.kent.net         DocumentRoot /home/kent/dev/phpws/joomla25         <Directory />                 Options FollowSymLinks                 AllowOverride None         </Directory> </VirtualHost>

“形状”是PPT的砖瓦

PPT应以“图”为主。 而图 = 形状 + 形状里面的文字。 PPT提供了很多种形状,表达能力很强。 形状还可以嵌套、组合,这对绘制系统模块图大有帮助。

html5: 不仅是一堆新标签,它还包括一些新的API

html5的改进不仅仅在于<audio>, <video>, <header>之类的一堆新标签,它还包括一些API,有些API对移动应用还很重要。 当然html5还有其他细小的改进,这里就不说了。 API    1.html语言怎么会有API呢? 这里的API其实是指html5规范制定的、可以用javascript来调用、在html4基础上新增的API    2.这些新API除了一些dom操作和多媒体操作之外,还包括一些似乎不像是浏览器、javascript该干或者有权力干的事,比如web storage(大容量存储),File API(文件上传), File Writer API(写文件到本地),web socket(长连接通信).  有些API还对移动设备的APP非常重要,比如离线缓存、拖拉、地理定位等。         

websocket的握手与数据传输

关于握手,转一张 图: 连接建立后,客户端和服务端就可以 全双工地通迅。 数据传输以"message"为单位. 一个message由一个或多个frame组成,每个frame等于一个 header + payload.

Netty的websocket例子

看这个官方示例: http://netty.io/3.5/xref/org/jboss/netty/example/http/websocketx/server/package-summary.html 不要被类名疑惑。它既包含了服务端,也通过产生js代码、提供了客户端。 java客户端: https://github.com/netty/netty/tree/master/example/src/main/java/io/netty/example/http/websocketx/client

关于comet、websocket的比较

首先要明白websocket不是http协议,只不过有些相似的地方: 报文格式相似(但不相同),都被浏览器支持,服务商品都是80等。 而comet是基于http协议的. 再推荐一篇文章,里面总结了websocket相比于comet在性能方面的优点: Ajax、Comet、HTML 5 Web Sockets技术比较分析

comet

摘自wiki: Comet is an umbrella term, encompassing multiple techniques for achieving this interaction. All these methods rely on features included by default in browsers, such as JavaScript, rather than on non-default plugins. The Comet approach differs from the original model of the web, in which a browser requests a complete web page at a time. …

comet Read More »

NIO – Netty代码示例

以下代码代表一个加法。客户端提交加数,服务端回送“和”。 服务端 package player.kent.chen.temp.learnnetty.raw; import java.net.InetSocketAddress; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import org.jboss.netty.bootstrap.ServerBootstrap; import org.jboss.netty.buffer.ChannelBuffer; import org.jboss.netty.buffer.ChannelBuffers; import org.jboss.netty.channel.Channel; import org.jboss.netty.channel.ChannelFactory; import org.jboss.netty.channel.ChannelHandlerContext; import org.jboss.netty.channel.ChannelPipeline; import org.jboss.netty.channel.ChannelPipelineFactory; import org.jboss.netty.channel.Channels; import org.jboss.netty.channel.ExceptionEvent; import org.jboss.netty.channel.MessageEvent; import org.jboss.netty.channel.SimpleChannelHandler; import org.jboss.netty.channel.group.ChannelGroup; import org.jboss.netty.channel.group.ChannelGroupFuture; import org.jboss.netty.channel.group.DefaultChannelGroup; import org.jboss.netty.channel.socket.nio.NioServerSocketChannelFactory; /** * 报文格式:request=a+b, response=c * * @author 陈坚 2013年6月18日下午2:47:04 */ public class PlayNettyAddServer …

NIO – Netty代码示例 Read More »