https://github.com/jaywcjlove/websocket
websocket APIs 简单封装,还赠送一个nodejs搭建websocket服务实例
https://github.com/jaywcjlove/websocket
Last synced: about 1 month ago
JSON representation
websocket APIs 简单封装,还赠送一个nodejs搭建websocket服务实例
- Host: GitHub
- URL: https://github.com/jaywcjlove/websocket
- Owner: jaywcjlove
- Created: 2014-11-25T02:40:54.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2020-03-24T16:18:14.000Z (about 5 years ago)
- Last Synced: 2024-04-14T02:19:49.825Z (about 1 year ago)
- Language: JavaScript
- Homepage:
- Size: 86.9 KB
- Stars: 46
- Watchers: 6
- Forks: 35
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# websocket
[](https://github.com/jaywcjlove/websocket/issues) [](https://github.com/jaywcjlove/websocket/network) [](https://github.com/jaywcjlove/websocket/stargazers) [](https://github.com/jaywcjlove/websocket/releases)
ws 对象提供了建立、管理 WebSocket 服务器的握手连接的 API,它也有在连接中传送、接收数据的能力。
## 下载
```
# bower 下载
bower install websocket# npm 下载
npm install websocketjs
```## 测试
进入 `websocket` 根目录 在命令行中运行 `grunt` 会输出下面内容,`127.0.0.1:8080` 是打开 `index.html` 页面, `ws://127.0.0.1:3001`
同时自动压缩 `websocket.js`
```
--WebSocket-------------
WebSocket address: ws://127.0.0.1:3001
WebSocket has started.
--Server----------------
Server address: http://127.0.0.1:8080
Server running... press ctrl-c to stop.
Server has started.
------------------------
```## 接口调用
将原生websocket调用 `socket = new WebSocket(url,protocol)` 更换成
`socket = new ws(url,protocol)````js
var socket,url='ws://127.0.0.1:3001';
//原生websocket使用换成下面 ws 方法
socket = new WebSocket(url);
//换成了ws 方法之后,下面的事件才有作用
socket = new ws(url);
```### readyState
`readyState` 属性使用以下常数描述 `WebSocket` 的连线状态。```js
socket.readyState //=>1
```| 常数 | 值 | 描述 |
| -------- | -------- | -------- |
| CONNECTING | 0 | 连接尚未打开。|
| OPEN | 1 | 连接已打开,可以进行通讯。|
| CLOSING | 2 | 连接正在进行关闭程序。|
| CLOSED | 3 | 连接已关闭/连接不能打开。|### onopen
连接成功会执行这个事件
### onmessage
接收websocket推送过来的消息
### onconnecting
这是个监听事件,当连接开始尝试进行,事件监听器被调用。
### onclose
websocket关闭会执行这个事件
### send
通过websocket向后端发送消息。
### close
关闭 WebSocket 连接/连接尝试,若连接已为 CLOSED,此方法沒有作用。```js
socket.close(1000,'kiki');
```#### code 可选
表示状态码,状态代码用以解释连接关闭的原因。弱未指定参数,预设值为1000(表示正常的「事物完结 transaction complete 」关闭),参考 [CloseEvent](https://developer.mozilla.org/zh-TW/docs/WebSockets/WebSockets_reference/CloseEvent#.e7.8b.80.e6.85.8b.e4.bb.a3.e7.a2.bc) 页面的 [状态码列表](https://developer.mozilla.org/zh-TW/docs/WebSockets/WebSockets_reference/CloseEvent#.e7.8b.80.e6.85.8b.e4.bb.a3.e7.a2.bc),有所有的合法状态码值。
#### reason 可选
解释连接断开的原因人类可读字符串,字符串不可大于 123 个 UTF-8 字符串
## 完整例子
```js
var socket = new ws('ws://127.0.0.1:3001'),
str = "JSLite.io";socket.onconnecting = function(evn){
console.log("socket:onconnecting:",evn);
// sendMsg("wcj");
}
socket.onopen = function(evn){
console.log("socket:onopen:",evn);
log('发了个消息!"'+str+'"');
sendMsg(str);
}
socket.onclose = function(evn){
console.log("socket.onclose:",evn);
log('WebSocket 被你关闭了!,您老人家再也没有办法建立连接了?');
}
socket.onmessage = function(evn){
console.log("socket:onmessage:",evn);
log('收到消息!"'+evn.data+'"');
// socket.close()
}function sendMsg (str) {
console.log("socket:sendMsg:",socket);
socket.send(str);
}
```## 开发测试
```bash
npm start
```