通过Web IM传文件的这篇文章思路非常好,先保存下来,待我整理思路并开发出来代码后,供各位朋友一起鉴赏。
======================================================================
Pushlets 实现了。保暖思淫欲, 现在我们要通过 Web IM 给其他用户传文件了。
这在我最新的框架 Eurasia3 中是非常容易的一件事情, 这里简单地描述一下原理。
当用户点击 "发送文件时", RIA 客户端在浏览器上生成一个上传文件的 "<Form>", 让用户选择上传的文件,
这样服务器就得到一个普通的文件上传请求, 通常的 CGI 会把文件保存在磁盘上以实现传统的上传功能。
但是这里, 我们并不把上传的文件放到磁盘上, 而是在内存中开出一个缓冲区,
当用户上传的内容达到缓冲区空间上限, 他的上行 IO 就阻塞了, 等待缓冲区重新可写。
与此同时, 服务器向接收文件的目标用户发送一个下载指令, 使他打开一个下载链接,
下载的内容即是从上传缓冲区中读取的, 当缓冲区读空, 用户的下行 IO 就阻塞了, 等待上传用户补充缓冲区。
这两者是同时进行的, 形成了一个生产消费模型。
其结果是, 服务器上并没有真实存在过这个文件, 它只要提供一个几百 K 的缓冲区就可以代理一次 Web IM 的文件传输请求。
出处:
http://eishn.blog.163.com/blog/static/6523182007290112332/
锁?
在中国开设网站,这个问题从来就很难说清楚。
Facebook并未立即回复记者的置评要求。中国审查机构不会透露他们会针对哪些网站,也绝不会证实他们封杀网站。在中国各地区之间,甚至是互联网服务商之间,执行标准都常常会不一样。
专家们表示,中国模糊不清的网络封锁手段正是其网络审查制度的高超之处。
在许多国家,用户在试图连接被封锁内容时会得到通知,但中国网络用户看到的却是“连接超时”或是“重新设置”这样的信息,看上去就好像是常见的电脑问题。
而且,很多网站并不会完全被封锁。举例说:
·中国部分用户周二无法登陆Facebook主页,但却可以通过其他链接看到该网站部分内容。
·一度遭广泛封锁的英文维基百科(Wikipedia)近来也逐渐解禁了,但连续点击维基百科敏感条目的链接,会导致浏览器在几分钟或更长的时间里完全连接不上该网站(中文维基百科据称只能通过安全连接进入)。
·雅虎公司(Yahoo)的图片共享网站Flickr基本上可以连接,但中国用户需要安装浏览器插件,才能保证可以进入所有图片。
当然,另一方面,技术高超的用户也可以通过代理或其他手段访问被封锁的网站。比如戴Tor...
尽管这一做法引起中国英文网络用户的极大不满,但封锁海外主要网站只会影响到中国庞大网民人口中的一小部分,因为绝大部分中国网民都上本地网站,而这些网站必须经常进行自我审查。
Facebook在中国的用户群并不多;据该公司表示,Facebook在中国拥有大约285,000名用户。而一些调查预计,中国至少有2.25亿互联网用户。
相比之下,截至周二下午,Facebook在纽约市就拥有997,000名会员。
但Facebook在中国的用户数正在非常迅猛的增长,过去一周新增了大约3,000名用户。
新闻集团(NewsCorp)旗下的MySpace是Facebook的竞争对手,新闻集团是《华尔街日报》发行商道琼斯公司(Dow Jones)的母公司。
北京奥运会的组织者曾表示,奥运期间不会对网络进行审查;这一承诺令人怀疑。如果北京用户在奥运期间仍难以连上Facebook的话,那么奥运组织者应该很清楚,奥运期间50万海外游客中肯定有人会注意到这一点。
(原文地址:http://chinese.wsj.com/gb/20080702/bch112609.asp?source=whatnews3)