关于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脚手架,直接在百度搜索就可以,

打开文件夹然后 新建文件夹

关于socket.io+express的cli脚手架+sql

然后 写上代码

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;

之后在创建数据库

关于socket.io+express的cli脚手架+sql

const mysql = require('mysql');

const connection = mysql.createConnection({

    host: 'localhost',   //数据库主机名

    user: 'root',    //数据库用户名

    password: '123456',   //数据库密码

    database: 'chat'    //数据库名称

})

connection.connect();

module.exports = connection;

 

关于socket.io+express的cli脚手架+sql

在这引入就行了ok 你已经实现了聊天;我在努力写个模仿qq出来到时候放到csd那上面;如果有不清晰的话欢迎给我留言;