node.js学习笔记 nodejs+express+socket.io实现简单的聊天功能demo

程序修行之路 任重而道远

直接上代码哈 ~ ^^ ~

1、目录结构:

node.js学习笔记 nodejs+express+socket.io实现简单的聊天功能demo_第1张图片

2、在nodejs下面新建一个imServer.js文件

var express = require('express');
var app = express();
var http = require('http').Server(app);
var io = require('socket.io')(http);
var mysql = require('mysql');

app.get('/user1', function(request, response){
  response.sendFile(__dirname + '/public/user1.html');
});

app.get('/user2', function(request, response){
  response.sendFile(__dirname + '/public/user2.html');
});

io.on('connection', function(socket){
  socket.on('chatMessage1', function(msg,userId){
    io.emit('chatMessage1', '用户2:' + msg);
    connect(msg,userId);
    console.log('chatMessage1被触发:' + msg +'---ID:'+ userId);
  });
  socket.on('chatMessage2', function(msg,userId){
  	io.emit('chatMessage2', '用户1:' + msg);
  	connect(msg,userId);
  	console.log('chatMessage2被触发:' + msg +'---ID:'+ userId);
  });
});

http.listen(9090);

var pool = mysql.createPool({
	host:'localhost',
	port: 3306,
	database: 'test',
	user :'root',
	password :'root'
})

function connect(msg,userId){
	pool.getConnection(function(err,connection){
		if (err) {
			console.log('与mysql数据库连接失败!')
		}else{
			var insertMsg = 'insert into chat(user_id,content) value (?,?)';
			var chatMsg = [userId,msg];
			connection.query(insertMsg,chatMsg,function(err,result){
			  	if (err) {
					console.log('插入数据失败',err);
				}else{
					console.log('插入数据成功');
					connection.release();
				}
			})
		}
	})
}

3、新建public 在其下面创建 user1.html 和 user2.html

//user1.html文件



  
    Socket.IO chat
    
  
  
    
IM聊天_1
    //user2.html文件
    
    
    
      
        Socket.IO chat
        
      
      
          
    IM聊天_2

      都创建好后 在cmd窗口输入 node imServer 就可以聊天了

      ----恩 简洁粗暴

      你可能感兴趣的:(node.js)