client.js
var connection = new WebSocket('ws://127.0.0.1:1337')
connection.onopen = function() {}
connection.onerror = function(err) {}
connection.onmessage = function(msg) {} // 监听接受响应msg后的操作
客户端的接收和发送
- 接收: onmessage 函数 msg 响应的解包方式是 msg.type === '???' 判断类型,然后读取 msg.data parse 为 json 数据
- 发送: connection.send(msg)
server.js
var wsServer = new webSocketServer({})
wsServer.on('request', function(request) {
var connection = request.accept(null, request.origin)
connection.on('message', function(message) {})
connection.on('close', function(connection) {})
})
服务端的接收和发送
- 接收: on('message', function(message)) 函数 message 响应的解包方式是 message.utf8Data (字符串)
- 发送: clients[i].sendUTF(JSON.stringify({type: '', data: ''})),其中 clients[i] 是一个 connection
特别地:面向客户端数组的断开代码套路是
- 这是标识: var index = clients.push(connection) - 1 // we need to know client index to remove them on 'close' event
- 这是断开: clients.splice(index, 1)
client 关键代码
三部曲 + 收发部分
/**
* Prepare connection variable
*/
window.WebSocket = window.WebSocket || window.MozWebSocket;
if (!window.WebSocket) {
content.html($('<p>', { text: 'Sorry, but your browser doesn\'t '
+ 'support WebSocket'}));
return;
}
var connection = new WebSocket('ws://127.0.0.1:1337');
/**
* This function is called every time server broadcast message
*/
connection.onmessage = function(message) {}
/**
* Send message by listener
*/
input.keydown(function(e) {})
/*
* The onmessage and listener part is essential
*/
connection.ommessage = function(message) {
var 接收信息 = JSON.parse(message.data);
}
input.keydown(function(e) {
connection.send(发送信息);
})
server 关键代码
三部曲 + 收发部分
/**
* Prepare port and require libraries
*/
var webSocketsServerPort = 1337;
var webSocketServer = require('websocket').server;
var http = require('http');
/**
* HTTP and webSocket server
*/
var server = http.createServer(function(request, response) {})
server.listen(webSocketsServerPort, function() {
console.log((new Date()) + " Server is listening on port " + webSocketServerPort);
});
var wsServer = new webSocketServer({
httpServer: server
});
/**
* This function is called everytime some tries to connect to the server
*/
wsServer.on('request', function(request) {
var connection = request.accept(null, request.origin);
connection.on('message', function(message) {});
connection.on('close', function(connection) {});
})
/**
* The onmessage part is the essential part
*/
connection.on('message', function(message) {
var 接收信息 = message.utf8Data;
var 发送信息 = xx( 接收信息 )
connection.sendUTF( 发送信息 )
})
暂无评论