1. 使用express-ws 做服务器 参考
- 安装express-ws
省略 - app.js 配置
一定要在 导入路由前 初始化 express-ws
var app = express();
var expressWs = require('express-ws')(app);
var indexRouter = require('./routes/index');
var usersRouter = require('./routes/users');
- bin/www 配置
由于 express-ws 在默认不添加server 参数情况下,使用的是app.listen 创建的httpserver,而express 脚手架将 app和server初始化分离了,所以需要再次配置express-ws
var server = http.createServer(app);
var expressWs = require('express-ws')(app, server);
var express = require('express');
var router = express.Router();
router.get('/', function(req, res, next) {
res.render('user/index', {
layout: 'bootstrap'
})
});
router.get('/ws', function(req, res, next) {
res.render('user/ws', {
layout: 'bootstrap'
})
});
router.ws('/ws', function(ws, req){
ws.on('message', function(msg) {
ws.send(msg);
console.log(msg)
});
ws.send('test');
})
module.exports = router;
{{#section 'javascript'}}
<script>
var socket = new WebSocket('ws://localhost:3000/users/ws');
socket.addEventListener('open', function (event) {
console.log('socket is open')
});
socket.addEventListener('message', function (event) {
console.log('Message from server', event.data);
socket.send('test')
console.log('send ok')
});
</script>
{{/section}}
ws 测试
2. 使用 socket.io 做服务器
3. 使用ws 做服务器