1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- var fs = require('fs')
- var http = require('http')
- var socketIO = require('socket.io')
- var express = require("express");
- var path = require("path");
- var app = express();
- app.use(express.static(path.join(__dirname, '/'))); //设置 express static 静态文件
- app.get("/chat", (req, res) => {
- fs.readFile("./client.html", (err, data) => {
- if (err) throw err;
- res.write(data);
- res.end();
- })
- })
- var server = http.createServer(app);
- var users = {};// sid socket
- var reflect = {};// name sid
- var io = socketIO.listen(server);
- io.on('connection', function (socket) {
- console.log(socket.id + "已经连接完成")
- // console.log(socket.id+"已经连接完成")
- //每次连接都对应一个 sid
- //每一个用户都有一个socket 对应一个 sid 对应一个 username
- // console.log(socket.id);
- io.sockets.emit('connectSucc', socket.id);
- //
- //发送私密消息
- socket.on('private message', function (from, to, msg) {
- // from -->sid
- //to -->sid
- for (const key in reflect) {
- console.log(key, ":", reflect[key])
- }
- // console.log('I received a private message by ', reflect[from],from, ' say to ', reflect[to],to, msg);
- if (reflect[to] in users) {
- // console.log('to :' + to);
- //to 222
- // users[reflect[to]].emit('to' + to, { mess: msg });
- users[reflect[to]].emit('to' + to, { person: from, content: msg });
- console.log('to' + to);
- console.log(reflect[to]);
- //
- // console.log(reflect[to],to+'_to');
- // xor <--> 222
- }
- });
- //新增用户
- socket.on('new user', function (data) {
- reflect[data] = socket.id;
- // var sidList =
- //data 是 from 谁发的 添加到这个 users列表 登陆的用户
- if (socket.id in users) {
- socket.emit("userHasLogin");
- } else {
- // var nickname = data;
- users[socket.id] = socket;
- console.log(data, socket.id, "已经登录!")
- // users["aaa"] = socket
- //每一个登陆的用户有一个自己的socket
- }
- // console.info(users);
- });
- //断开连接
- socket.on('disconnect', function () {
- console.log('user' + socket.id + ' disconnected');
- });
- });
- server.listen(8080, function () {
- console.log('Listening at: http://localhost:8080');
- });
|