根据Unix哲学来编写你的HTML5 Websocket服务器来实现全双工通信

websocketd代表WebSocket的守护进程

websocketd处理的是浏览器和服务器之间的WebSocket连接,它会启动你所指定的服务器端应用来对WebSockets进行处理,然后在浏览器和服务器应用之间进行消息的传递。

在20年前的话,有一项叫做CGI的技术做的工作类似,但现在这项技术将会被websocket所取代。

语言无关

只要你的服务器应用是可以从命令行进行运行的,你就可以为你的服务器应用编写WebSocket终端服务。

无需额外的库的支持

通过WebSocketd进行信息传递其实非常的简单,从标准输入stdin读取出文本然后写入到标准输出stdout,就是这么的简单。

让你远离多线程所带来的痛苦

Websocketd会根据所有进来的WebSocket连接来在对应的一个专门的独立进程中来运行你的应用。也就是说每个连接都是通过不同的进程隔离开来的。

完全符合我们公认的Unix哲学:

“编写的Unix应用应该一次只做一件事情,且把该事情做到极致。编写的软件应该可以协同工作。编写的软件应该可以处理文本流。因为你为Unix编写的接口将会是全球通用的。”

10秒教程

下面我们创建一个微型的WebSocket服务器,所做的事情就是去自增加到十,每次加1的时候都停顿一下并将当前数字输出到标准输出。

首先使用你喜欢的语言编写以上代码,这里我用的是bash脚本语言。

通过以上websocketd命令指定要监听的端口以及需要和浏览器进行通信的以上编写的应用名称。

最后在pc客户端的一个网页页面中编写对应的javascript脚本来通过WebSocket来连接上上面的WebSocketd监听端口。

大功告成...从中大家可以看到通过WebSocketd来建立一个WebSocket服务器是多么的简单!

------完----------

Websocketd官网:http://websocketd.com/


作/译者


微信知识共享公众号


CSDN


天地会珠海分舵


TechGoGoGo


http://blog.csdn.net/zhubaitian

时间: 2024-10-24 07:04:10

根据Unix哲学来编写你的HTML5 Websocket服务器来实现全双工通信的相关文章

Unix 哲学

1.模块原则:使用简洁的接口拼接简单的部件 2.清晰原则:清晰胜于机巧 3.组合原则:设计时考虑拼接组合 4.分离原则:策略同机制分离,接口同引擎分离. 5.简洁原则:设计要简洁,复杂度能低则低 6.吝啬原则:除非确无他法,不要编写庞大的程序. 7.透明性原则:设计要可见,以便审查和调试. 8.健壮原则:健壮源于透明与简洁. 9.表示原则:把知识叠入数据以求逻辑质朴而健壮 10.通俗原则:接口设计要避免标新立异 11.缄默原则:如果一个程序没有什么好说的,就沉默. 12.补救原则:出现异常时,马

[译]从LinkedIn,Apache Kafka到Unix哲学

原文链接:http://www.confluent.io/blog/apache-kafka-samza-and-the-Unix-philosophy-of-distributed-data作者:Martin Kleppmann译者:杰微刊-macsokolot(@gmail.com) 当我在为我的书做研究时,我意识到现代软件工程仍然需要从20世纪70年代学习很多东西.在这样一个快速发展的领域,我们往往有一种倾向,认为旧观念一无是处——因此,最终我们不得不一次又一次地为同样的教训买单,这真艰难

Unix哲学

模块原则 (使用简洁的接口拼合简单的部件) 计算机编程的本质就是控制复杂度 要编写复杂软件而又不至于一败涂地的唯一方法就是降低其整体复杂度——用清晰的接口把若干简单的模块组合成一个复杂的软件.如此一来,多数问题只会局限于某个局部,那么就还有希望对局部进行改进而不至牵动全身. 清晰原则 (清晰胜于技巧) 维护成本是高昂的,在写程序时,要想到你不是写给执行代码的计算机看的,而是给人——将来阅读维护源码的人,包括你自己看的. 在Unix传统中,这个建议不仅意味着代码注释.良好的Unix实践同样信奉在选

关于Unix哲学

http://www.ruanyifeng.com/blog/2009/06/unix_philosophy.html 这几天,我在看Unix,发现很多人在谈"Unix哲学",也就是开发Unix系统的指导思想. Wikipedia上列出了好几个版本,不同的人有不同的总结.发明管道命令的Doug McIlroy总结了三条,而Eric S. Raymond则在The Art of Unix Programming一书中,一口气总结了17条(英文版,中文版). 但是我发现,所有人都同意,&q

Unix C语言编写基于进程的小型并发服务器

并发介绍 如果逻辑控制流在时间上是重叠的,那么它们就是并发的,可以出现在计算机系统的不同层面上,硬件异常处理程序.进程和Unix信号处理程序都是并发的.并发可以看作是操作系统内核用来运行多个应用程序的机制,但是并发不局限于内核.它也可以在应用程序中扮演角色.并发的主要作用有:访问慢速IO设备;与人交互的程序;通过推迟工作以降低延迟;服务多个网络客户端的请求.并发通常可以有三种,基于进程.基于IO多路复用.基于线程. 基于进程的并发 进程是一个程序运行的实例.每一个进程都有自己独立的地址空间,一般

基于构建实时WEb应用的HTML5 WebSocket协议<二>

前面说了那么多的理论,我们来看下代码学习. WebSocketAPI简介 首先看一段简单的javascript代码,该代码调用了WebSockets的API. var ws = new WebSocket("ws://echo.websocket.org"); ws.onopen = function(){ws.send("Test!"); }; ws.onmessage = function(evt){console.log(evt.data);ws.close(

使用 HTML5 WebSocket 构建实时 Web 应用

作为下一代的 Web 标准,HTML5 拥有许多引人注目的新特性,如 Canvas.本地存储.多媒体编程接口.WebSocket 等等.这其中有"Web 的 TCP "之称的 WebSocket 格外吸引开发人员的注意.WebSocket 的出现使得浏览器提供对 Socket 的支持成为可能,从而在浏览器和服务器之间提供了一个基于 TCP 连接的双向通道.Web 开发人员可以非常方便地使用 WebSocket 构建实时 web 应用,开发人员的手中从此又多了一柄神兵利器.本文首先介绍

【HTML5 WebSocket】WebSocket对象特性和方法

<HTML5 WebSocket权威指南>学习笔记&3 WebSocket方法的对象特性 1. WebSocket方法 a. send方法 send方法用于在WebSocket连接建立后,客户端向服务端发送消息.可分为发送两种消息,一种是普通文本信息,一种是二进制数据.需注意的是,send方法必须在连接建立以后才能使用,也就是在onopen里使用才不会出错. 发送普通消息 这个比较简单,在上一篇学习WebSocket事件时就用到了,只需要send(message)即可. 发送二进制数据

浅谈HTML5 WebSocket的机制

回顾上一章 在上一章<为什么我们需要HTML5 WebSocket>中,我简单的介绍了下WebSocket的前世今生.相信大家已对WebSocket有了初步的了解.那么今天我们继续深入学习WebSocket的机制. WebSocket机制 我们知道WebSocket是HTML5一种新的协议.它实现了浏览器与服务器全双工通信(不知道的可以看下全双工通信RS-422标准),能更好的节省服务器资源和带宽并达到实时通讯,它建立在TCP之上,同HTTP一样通过TCP来传输数据,但是它和HTTP最大不同是