chat/app.js
2020-10-24 11:44:53 +08:00

57 lines
1.7 KiB
JavaScript
Executable File

var http = require('http');
//聊天服务
var chat = require('./lib/chat');
//web服务
var web = require('./lib/web');
var server = http.createServer(web.handler);
var io = require('socket.io')(server);
var loginUseSession = true; // 是否需要登录
//进行相关事件处理
io.on('connection', function (client) {
if (!client.handshake.query || !client.handshake.query.key) {
//没有正确的连接参数 直接断开连接
client.emit('error notice', '连接参数不正确(-1)');
client.disconnect();
return;
}
if(client.handshake.query.key != chat.connect_key){
//连接的key不正确
client.emit('error notice', '连接参数不正确(-2)');
client.disconnect();
return;
}
//判断是否存在session_id
if (!client.handshake.query && !client.handshake.query.username) {
client.emit('error notice', 'no username');
client.disconnect();
return;
}
if(loginUseSession) {
client['tag'] = 'new';
chat.processUserLogin(client);
}else{
client.emit('error notice', '请使用session登录');
// setTimeout(function() {
// client.disconnect();
// }, 3000);
//仍然使用普通昵称 登录
client['tag'] = 'old';
chat.processClient(client,{
uid:0,
nickname:client.handshake.query.username,
avatar:'https://default.wm-app.xyz/chat_server/chat/img/default-avatar.jpg'
})
}
});
chat.init(io);
var serverPort = 3000;
server.listen(serverPort,()=>{
console.log('server start at port ',serverPort);
console.log(`open http://localhost:${serverPort}/ view`)
});