WebScoket 实现

npm 安装 websocket 包

服务端代码

  1. 新建一个 js 文件,如: ws_server.js
  2. 引入 websocket 包,并且 new 一个 websocket server
    1
    2
    var WebSocketServer = require('ws').Server,
    wss = new WebSocketServer({port: 9999});
  3. 定义一个数组用来存放连接的用户
    1
    2
    // 连接池
    var clients = [];
  4. 监听 wss ,当有用户加入时,把该用户加入连接池,当某个用户发送消息当时候,循环连接池,把消息推送给每一位用户,当用户退出时,将其移出连接池
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    wss.on('connection', function (ws) {
    // 将该连接加入连接池
    clients.push(ws);
    ws.on('message', function (message) {
    console.log(message);
    // 广播消息
    clients.forEach(function (ws1) {
    if (ws1 !== ws) {
    ws1.send(message);
    }
    })
    });

    ws.on('close', function (message) {
    // 连接关闭时,将其移出连接池
    clients = clients.filter(function (ws1) {
    return ws1 !== ws
    })
    });
    });
  5. 使用 node 启动该服务
    1
    node ws_server.js
阅读全文
APP 调用 HTML 页面是如何传递消息

js2app 为 APP 端定义的方法名称

1
2
3
4
5
window.webkit.messageHandlers.js2app.postMessage({
type: 1,
title: response.data.code,
content: response.data.message
});
阅读全文
ES6(ES2015)核心内容

30 分钟掌握 ES6/ES2015 核心内容(上)

ECMAScript 6(以下简称 ES6)是 JavaScript 语言的下一代标准。因为当前版本的 ES6 是在 2015 年发布的,所以又称 ECMAScript 2015。

也就是说,ES6 就是 ES2015。

虽然目前并不是所有浏览器都能兼容 ES6 全部特性,但越来越多的程序员在实际项目当中已经开始使用 ES6 了。所以就算你现在不打算使用 ES6,但为了看懂别人的你也该懂点 ES6 的语法了…

在我们正式讲解 ES6 语法之前,我们得先了解下 Babel。

Babel

Babel 是一个广泛使用的 ES6 转码器,可以将 ES6 代码转为 ES5 代码,从而在现有环境执行。大家可以选择自己习惯的工具来使用 Babel,具体过程可直接在 Babel 官网查看:

最常用的 ES6 特性

let, const, class, extends, super, arrow functions, template string, destructuring, default, rest arguments

这些是 ES6 最常用的几个语法,基本上学会它们,我们就可以走遍天下都不怕啦!我会用最通俗易懂的语言和例子来讲解它们,保证一看就懂,一学就会。

阅读全文
JSON

JSON 的语法可以表示以下三种类型的值:

  • 简单值
  • 对象
  • 数组
阅读全文
媒体元素

HTML5 新增了两个与媒体相关的标签,分别是 audio 和 video。用法如下:

1
2
3
4
5
<!-- 嵌入音频 -->
<audio src="song.mp3" id="myAudio">Audio player not available.</audio>

<!-- 嵌入视频 -->
<video src="conference.mpg" id="myVideo">Video player not available.</video>
阅读全文
HTTP概念

MIME 类型

这是一种文本标记,主要的对象类型/特定的子类型,如:

  • HTML 格式的文本文档:text/html
  • 普通 ASCII 文本文档:text/plain
  • JPEG 格式的图片:image/jpeg
  • GIF 格式的图片:image/gif
  • Apple 的 QuickTime 电影:video/quicktime

URI

统一资源标识符
URI 有两种形式,URL 和 URN。
URN 目前处于试验阶段,所以我们一般使用不区分 URI 和 URL。

URL

统一资源定位符

URN

统一资源名
例:不论因特网标准文档 RFC 2141 位于何处,都可以用下列 URN 来命名它:urn:ietf:rfc:2141

阅读全文
Algolia