zoukankan      html  css  js  c++  java
  • 基于Websocket的websocketd

    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 + '
    ';
      }
    
      // 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

  • 相关阅读:
    下标处理问题
    C++输入输出流
    gcc和gdb
    B2C、C2C电子商务分析
    转载:java 动态代理学习(Proxy,InvocationHandler)
    Java Web开发中路径问题小结
    64位操作系统IIS降为32 位版本运行处理
    SQL Server 2000/2005 数据库分页
    iBatis简单入门教程
    JAVA中的Class类
  • 原文地址:https://www.cnblogs.com/xingxia/p/websocketd.html
Copyright © 2011-2022 走看看