关于socket.io+express的cli脚手架+sql
关于socket.io+express的cli脚手架+sql
首先下载socket.io.js 下载地址https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.2.0/socket.io.js
新建一个html文件,你可以在文件里面直接引入上面的那个地址,
在文件中使用jq
例如:
<!doctype html>
<html>
<head>
<title>Socket.IO chat</title>
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font: 13px Helvetica, Arial;
}
form {
background: #000;
padding: 3px;
position: fixed;
bottom: 0;
width: 100%;
}
form input {
border: 0;
padding: 10px;
width: 90%;
margin-right: .5%;
}
form button {
width: 9%;
background: rgb(130, 224, 255);
border: none;
padding: 10px;
}
#messages {
list-style-type: none;
margin: 0;
padding: 0;
}
#messages li {
padding: 5px 10px;
}
#messages li:nth-child(odd) {
background: #eee;
}
#messages {
margin-bottom: 40px
}
</style>
</head>
<body>
<ul id="messages"></ul>
<form action="">
<input id="m" autocomplete="off" /><button>发送</button>
</form>
</body>
</html>
<script src='./Socket/Socket.js'></script>
<script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
<script>
$(function () {
var socket = io("ws://192.168.124.39:3000");
$('form').submit(function () {
socket.emit('chat message', $('#m').val());
$('#m').val('');
return false;
});
socket.on('chat message', function (msg) {
$('#messages').append($('<li>').text(msg));
});
});
</script>
这是前端文件 ↑
后台使用express :首先下载node,然后下载express脚手架,直接在百度搜索就可以,
打开文件夹然后 新建文件夹
然后 写上代码
var express = require('express');
var router = express.Router();
const mysql = require('mysql');
const connection = require('../public/javascripts/mysql');
var socketio = {}
var socket_io = require('socket.io')
//定义一个数组
var count = 0;
var userid = {};
//获取io
socketio.getSocketio = function (server) {
var io = socket_io.listen(server)
io.on('connection', function (socket) {
console.log('a user connected!');
var roomNum = 'room' + (count);//自增实现socket进入不同房间
socket.join(roomNum, function () {
console.log(socket.rooms);
}); //加入房间后,打印出socket和room的信息
socket.on('chat message', function (msg) {
var room = Object.keys(socket.rooms)[1]; //这是当前socket的房间,这个对象设置得有点怪,但是事实如此。
io.to(room).emit('chat message', msg);
console.log(room);//打印出房间。
});
});
}
module.exports = socketio;
之后在创建数据库
const mysql = require('mysql');
const connection = mysql.createConnection({
host: 'localhost', //数据库主机名
user: 'root', //数据库用户名
password: '123456', //数据库密码
database: 'chat' //数据库名称
})
connection.connect();
module.exports = connection;
在这引入就行了ok 你已经实现了聊天;我在努力写个模仿qq出来到时候放到csd那上面;如果有不清晰的话欢迎给我留言;