注:此为早期的对于webrtc实现的一份总结
绪论
Webrtc 全称为web real-time communication,也即是支持web上实时通讯,而且它包括几乎所有我们想用到的东西:视频、音频、文字、文件的实时通讯。相比我们以前常用的QQ、sms等等,Webrtc最大的特性就在于它是基于网页的,只需要打开网页就可以和其它人进行联系。我们知道传统的Web中是没有推送这个概念的,所以就会有使用ajax轮询、使用flash的 xml socket等方式来和服务器进行数据交互,直到HTML5的websocket的出现,才让这个推送问题得到更好的解决。比较一下websocket和webrtc,虽然它们都可以进行在线的通讯,但websocket更多的是浏览器和服务器间的通讯,webrtc则主要注重于浏览器和浏览器之间的通讯。可以想象,两个用户之间进行通讯而不需要经过服务器中转,这会减轻多少服务器的负担。
阅读剩余部分 >>
注:同样来源我本科的毕业设计,以cometd框架来实现的一个服务器推送机制。
协同设计涉及多个人之间的交互,需要一个实时可靠地消息传递机制,这通常是由服务器推送技术来支持的。前一文章介绍的web下常见的服务器推送技术中分析可知,目前实现服务器推送较好的两种方式是基于ajax的长轮询方法和HTML5的WebSocket方法,这两种方式都不需要安装插件。WebSocket方法最优,应优先考虑,但考虑到一些用户的浏览器可能并未支持WebSocket,所以也要实现ajax的长轮询方法。然后通过JavaScript去识别客户端是否支持WebSocket,如果不支持则转换为基于ajax的长轮询方法。本文使用了一个名为cometd框架[27]来搭建一个在线交流平台。
阅读剩余部分 >>
注:此为我毕业论文中的一部分,由当时总结而来。
概述
如今的很多网络应用都需要用到服务器的推送技术,比如炒股网站、实时监控系统、在线聊天等。受限于传统的Web标准中采用的基本都是请求/响应模式,服务器往往处于被动的状况,只能在有数据传输过来的时候才能将数据传输回去,服务器不能直接的给流浪器发送数据,这给那些需要实时进行通讯的应用带来了很多的麻烦。对于那种实时性要求很高的应用来说,它们不希望每次都要刷新或者请求才能获取到数据,它们渴望服务器一有数据更新自己马上就可以被“通知”得到。在这种受限的环境下,基于AJAX、iframe流等方式被提出来并得以解决,不过这并不完美,仍旧是使用请求/响应模式的。Html5的出现,也带来了WebSocket这一项新的内容,它允许浏览器也有socket发送和接收形式。接下来会详细介绍一下这几种方式。
阅读剩余部分 >>
今天又遇到配置虚拟主机的问题了,没有及时记下来,很容易就忘记,所以在此做一个记录。其实很简单的。
-
编辑httpd.conf,查找Include conf/extra/httpd-vhosts.conf,把前面注释符号“#”删掉。
-
编辑httpd-vhosts.conf,注意D:\mik是我的目录,还要加上localhost那个,不然localhost无法访问
阅读剩余部分 >>
这里,我们直接安装目前samba最新版本4.1.4。
-
第一步:获取samba 前面我们已经配置好了网络,我们可以直接通过wget来下载安装包,也可以将samba安装包用iso封装,挂载到光驱中来读取。这里只介绍第一种方法。 输入命令
mkdir /miktmp //新建文件夹,用来保存下载的文件。
cd /miktmp //切换到该目录下
wget http://www.samba.org/samba/ftp/stable/samba-4.1.4.tar.gz
阅读剩余部分 >>
我们操作系统的作业是使用crux,修改里面的内核代码,以达到隐藏进程的作用。代码部分不算复杂(可能是网上有类似的代码吧^_^),装系统,配环境倒是要花很多时间。下面主要也是讲讲如何安装crux。
阅读剩余部分 >>
做项目的时候,需要用到一个servlet,但是很不幸的是,servlet对应的url被struts截断了,无法解析到正确的servlet上面去。解决这个问题暂时发现两种方法。
第一种方法,写一个filter。
阅读剩余部分 >>
最近在进行cometd的移植,之前运行的好好的cometd项目现在总是提示 java.lang.IllegalStateException 错误,仔细来说是 Asynchronous not support!
解决方法:
cometd使用了Jetty Continuations来充分利用servlet3.0异步的特性。要求在cometd定义的servlet定义true,还有需要在所有的filter中加true。
阅读剩余部分 >>
搭建ssh的整个框架实在是一个头疼之处,使用eclipse的 add *** capabilities后,由于struts的jar包里的antlr-2.7.2.jar,比Hibernate3.3自带的antlr-2.7.6.jar的版本要低。所以导致导致了antlr.collections.AST.getLine()。
阅读剩余部分 >>
今天把thinkphp的config.php改了一下,又把runtime给删了,运行后竟然提示
错误 330 (net::ERR_CONTENT_DECODING_FAILED):未知错误
百思不得其解,后来百度之后,发现可能是:
index.php文件的UTF-8包含了BOM(文件头,表示UTF-8),解决方法是另存问,选择utf8无bom即可
解决方法当然是把bom头去掉。
阅读剩余部分 >>