其实官网文档清楚了 https://socket.io/get-started/chat/
但是因为之前写的是nodejs+express, socket.io是后加的, 还是有小坑
服务器端:
官网代码
var app = require('express')(); var http = require('http').Server(app); var io = require('socket.io')(http); app.get('/', function(req, res){ res.sendFile(__dirname + '/index.html'); }); io.on('connection', function(socket){ console.log('a user connected'); }); http.listen(3000, function(){ console.log('listening on *:3000'); });
注意这里是http.listen而不是app.listen!
如果是app.listen 客户端会打开web页面, 但一直报连不上socket.io 404 not found
2 注意它用的是 app.get('/')
也可以直接用1行static
// app.get("/", (req, res) => res.send("Hello World!")); app.use(express.static(config['PATH_OVERLAY_STATIC']))
但必须注释掉app.get('/')
客户端:
const io = require('socket.io-client'); const socket = io(); io.on('connection', function(socket){ console.log('connected with server!'); socket.on('chat message', function(msg){ console.log('message: ' + msg); }); ... }); window.onload = function() { .... }
必须用socket.io-client否则会报错.
io.on 完全独立其他代码. 其实类似与int main()主函数,死循环.
// app.get("/", (req, res) => res.send("Hello World!"));
app.
use(express.
static(config[
'PATH_OVERLAY_STATIC']))