zoukankan      html  css  js  c++  java
  • flask项目之三()

    1.玩具的管理控制页面:            
        2.绑定两个玩具,发送给玩具的音乐
            mpop
                
        3.聊天(好友通讯录 , chat页面 , 玩具端接收消息)
            HTTP传输文件 Ajax flask 文件操作
            
            1.chat页面:
            2.app录音 Audio 基于plus.getRecorder()实现的app录音
                record = plus.audio.getRecorder();
                record.recoder({filename:"_doc/audio/"},function(path){ path文件路径})
                record.stop()
                
            3.传录音 upload 基于plus.upload 实现文件数据传输、
                1.创建上传任务
                var task = plus.uploader.createUpload(window.serv + "/uploder", {
                    method: "POST"
                }, function(t, status) {
                    if(status == 200) {
                    }
                });
                
                2.添加上传任务内容
                task.addFile(p, {
                    key: "record"
                });
                task.addData("chat_window", chat_window);
                task.addData("user_id", window.localStorage.getItem("user"));
                
                //task.addEventListener( "statechanged", onStateChanged, false );
                3.开始上传
                task.start();
                
            4.Flask request.files["reco"] .save(123.mp3) "ffmpeg -i amr mp3"
                request.files.save()
                request.files.filename;
                
                
            5.通过weboscket 发送字符串、
                前端:
                    {to_user: Sdata.friend_id,chat: uuid_file + ".mp3"}
                后端:
                    if msg_dict.get("chat"):
                    send_something = {"msg_type":"chat","msg":msg_dict.get("chat")}

                    if msg_dict.get("music"):
                    send_something = {"msg_type": "music", "msg": msg_dict.get("music")}
                
                
            6.web玩具端接收消息
                var msg = JSON.parse(data.data);
                if(msg.msg_type == "music"){
                    document.getElementById("player").src = get_music + msg.msg;
                }
                if(msg.msg_type=="chat"){
                    document.getElementById("player").src = get_chat + msg.msg;
                }

     

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    <audio src="" controls autoplay id="player"></audio>
    <!--<input type="file" name="myfile">-->
    <!--d6075359b74e3d3772a3940ff14be5ba-->
    <p>玩具DeviceKey:<input type="text" id="devicekey">
    <button onclick="ON_toy()">开机连接服务器</button></p>
    
    <p><button onclick="" style="background-color: red">录制消息</button></p>
    <p><button onclick="" style="background-color: green">发送消息</button></p>
    </body>
    <script type="text/javascript" src="/static/jQuery3.1.1.js"></script>
    <script type="text/javascript">
        var serv = "http://192.168.12.11:9527";
        var get_music = "http://192.168.12.11:9527/get_music/";
        var get_chat = "http://192.168.12.11:9527/get_chat/";
        var ws = null;
    
        function ON_toy() {
            var devicekey = document.getElementById("devicekey").value;
            $.post(serv + "/toy_login", {devicekey: devicekey},
                function (data) {
                    document.getElementById("player").src = get_music + data.audio;
                    if (data.toy_id) {
                        ws = new WebSocket("ws://192.168.12.11:9528/ws/"+data.toy_id );
                        ws.onmessage = function (data) {
                            console.log(data.data);
                            var msg = JSON.parse(data.data);
                            if(msg.msg_type == "music"){
                                document.getElementById("player").src = get_music + msg.msg;
                            }
                            if(msg.msg_type=="chat"){
                                document.getElementById("player").src = get_chat + msg.msg;
                            }
                        }
                    }
                },
                "json")
        }
    </script>
    </html>

    当我们点击页面的消息按钮时,跳转到friend_list.html页面:

    friend_list.html:

    然后写后端:

    from flask import Blueprint,request,jsonify
    from settings import MONGO_DB,RET
    from bson import ObjectId
    
    
    fri = Blueprint('fri',__name__)
    
    @fri.route('/friend_list',methods=['post'])
    def friend_list():
        user_id = request.form.get('user_id')
        res =  MONGO_DB.users.find_one({'_id':ObjectId(user_id)})
        friend_list = res.get('friend_list')
        
        RET['code'] = 0
        RET['msg'] = '获取好友列表'
        RET['data'] = friend_list
        return jsonify(RET)

    然后进入chat.html页面

     

  • 相关阅读:
    每周进度及工作量统计——2016.10.06-2016.10.13
    SCRUM站立会议模拟
    java词频统计——web版支持
    每周进度及工作量统计——2016.9.22--2016.9.29
    简易四则运算生成程序——第一次改进后的单元测试
    java词频统计——改进后的单元测试
    第一次通读《构建之法》阅读笔记
    centOS6.5网络配置
    webpack安装
    CommonJS和AMD/CMD
  • 原文地址:https://www.cnblogs.com/yb635238477/p/9838802.html
Copyright © 2011-2022 走看看