小型的http服务器处于维护中

关于ajax和httpd已经开发完毕,只是在维护中。

 

其实这个程序很简单,

服务器在得到url后,把?号前的部分当命令来解析,?号后的部分当参数来传递。

相当于本地的CGI

 

命令解析的一个小技巧是可以用/来进行命令的分类,如player/rewind?16

参数的传递就是一个结构的序列化和反序列化成字符串的一个过程,注意这里不要与http的特殊字符有冲突

 

命令解析后可以与相应的函数指针对应,这样可以直接调用函数。

如果命令比较多,可以用hash表来找其相应的执行函数。

 

参数的打包和解包可以参考JSON,

但是有一个比较小巧的方式就是直接以分割符的方式来做,缺点是参数不直观

 

返回的内容可以打包成xml,但是要注意xml的大小,因为是在机顶盒上。

可以把xml分开来传,只是服务器要做缓存。

 

服务器端的缓存,不能太大也不能太小,所以要缓存一些比较关键的信息,如同一目录下的所有文件分页传输。

 

同时服务器也要记录一些全局性的状态,尤其是网页在跳转过程中保存不了的,如播放器的状态。

 

文件的存储也需要权衡,缓存文件可以放到/var(内存文件系统)下,配置文件可以放到/root(flash的永久保存)下,

与硬盘相关的文件一定要放到硬盘上,如背景音乐列表

 

有些是网页实现不了的,如播放背景音乐,同时要进行浏览(这个会涉及到页面的跳转),因此要服务器端来实现,

但是控制一定要让网页来实现,比如有统一的背景音乐添加页面

 

和浏览器的XMLHTTPREQUST通信也比较复杂,因为每个浏览器的实现不同,

虽然是异步的,但是有的不支持两个以上同时用,有的不支持递归调用

因此可以用javascript写一个队列,用settimeout的方式来序列化发送请求

同时这也能解决快速按键的问题

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值