跳到主要内容

WebSocket

服务端

监听8080端口。当有新的连接请求到达时,打印日志,同时向客户端发送消息。当收到到来自客户端的消息时,同样打印日志。

var app = require('express')();
var server = require('http').Server(app);
var WebSocket = require('ws');

var wss = new WebSocket.Server({ port: 8080 });

wss.on('connection', function connection(ws) {
console.log('server: receive connection.');

ws.on('message', function incoming(message) {
console.log('server: received: %s', message);
});

ws.send('world');
});

app.get('/', function (req, res) {
res.sendfile(__dirname + '/index.html');
});

app.listen(3000);

客户端

向8080端口发起WebSocket连接。连接建立后,打印日志,同时向服务端发送消息。接收到来自服务端的消息后,同样打印日志。

<script>
var ws = new WebSocket('ws://localhost:8080');
ws.onopen = function () {
console.log('ws onopen');
ws.send('from client: hello');
};
ws.onmessage = function (e) {
console.log('ws onmessage');
console.log('from server: ' + e.data);
};
</script>

运行结果

服务端输出:

server: receive connection.
server: received hello

客户端:

client: ws connection is open
client: received world