WebSocket是什么

WebSocket是HTML5下面的一种技术,设计出来的目的就是要取代轮询和 Comet 技术,使客户端浏览器具备像 C/S 架构下桌面系统的实时通讯能力。 浏览器通过 JavaScript 向服务器发出建立 WebSocket 连接的请求,连接建立以后,客户端和服务器端就可以通过 TCP 连接直接交换数据。因为 WebSocket 连接本质上就是一个 TCP 连接,所以在数据传输的稳定性和数据传输量的大小方面,和轮询以及 Comet 技术比较,具有很大的性能优势。

简单的说这就是一个可以通过web来访问的socket协议。

具体可参考以下:
https://www.websocket.org/
https://developer.mozilla.org/en-US/docs/WebSockets

websocketd是什么

websocketd是一个简单的websocket服务Server,运行在命令行方式下,可以通过websocketd和已经有程序进行交互。

你可以写一个程序通过读写STDIN和STDOUT来和websocketd交互。因为是标准的读写接口,所以你的程序可以使用任何语言来处理。

这个程序的项目地址如下:
https://github.com/joewalnes/websocketd

websocketd 10秒教程

1.下载并安装websocketd

其实就是把websocketd下载到本地任何目录,反正你知道运行方式就可以,方便的话你可以放到

/usr/local/bin

目录下。直接在项目地址下载最新的就可以了。

2.写一个程序把数据显示到STDOUT

你可以用任何语言。
例子用了最简单的sh。
count.sh:

#!/bin/bash
# Count from 1 to 10, pausing for a second between each iteration.
for COUNT in $(seq 1 10); do
echo $COUNT
sleep 1
done

记得让他变成可执行文件:

$ chmod +x ./count.sh

3.启动websocketd server

$ websocketd --port=8080 ./count.sh

4.用javascript写一个客户端来交互

count.html:

<!DOCTYPE html>
<pre id="log"></pre>
<script>
// helper function: log message to screen
function log(msg) {
document.getElementById('log').textContent += msg + '\n';
} // setup websocket with callbacks
var ws = new WebSocket('ws://localhost:8080/');
ws.onopen = function() {
log('CONNECT');
};
ws.onclose = function() {
log('DISCONNECT');
};
ws.onmessage = function(event) {
log('MESSAGE: ' + event.data);
};
</script>

很简答,建立连接,然后接收消息,当然你也可以发送消息。

5.websocket的常用API

onopen
onerror
onclose
onmessage
send

备注:    websocketd --port=8080 [执行指定程序]  例如: php count.php

最新文章

  1. LintCode389.判断数独是否合法
  2. CruiseControl.NET学习总结(转载)
  3. 基于Qt Phonon模块实现音乐播放器
  4. Bootstrap_排版_表格
  5. UVA 11770 Lighting Away
  6. 独立博客网站FansUnion.cn操作2多年的经验和教训以及未来计划
  7. socket网络编程快速上手(二)——细节问题(1)
  8. PyCharm中Directory与Python package的区别
  9. Http协议详解,获取doPost,doGet提交的数据,以及编码问题
  10. 微信支付errcode:40163,code been used,错误小结
  11. iOS SDWebImage知识点
  12. 导入项目的时候报错Error:Could not find com.android.support.constraint:constraint-layout:1.0.0-alpha7
  13. git 入门教程之github 教程
  14. hdoj:2067
  15. MyCat配置详解
  16. ES5和ES6中的继承
  17. PyDev for eclipse 插件下载地址
  18. KETTLE元数据表
  19. CF刷刷水题找自信 2
  20. selenium中WebElement.getText()为空解决方法

热门文章

  1. axios的拦截器(Interceptors)
  2. rest 参数与扩展运算符
  3. react-native命令初始化项目后可借助webstrom快速运行与调试项目
  4. Linux的ifconfig看到的信息详解
  5. 爬取网贷之家平台数据保存到mysql数据库
  6. C# 函数返回多个值的方法
  7. 【MFC】BitBlt详解
  8. .NET制作滚动条
  9. @Conditional注解
  10. vim简单题练习-------出自《鸟哥的linux私房菜》第309页码题目