• 使用Firefly编写简易聊天室


    1.创建工程
    命令行下输入firefly-admin.py createproject chat_rooms(linux在终端输入),
    <ignore_js_op>

    firefly会在C盘Users目录中的MSI文件夹下创建一个名为chat_rooms的工程
    <ignore_js_op>


    2.导入工程
    将工程导入到eclipse中
    <ignore_js_op>

    3.配置参数
    配置config.json中的相应参数
    <ignore_js_op>

    3.配置参数
    配置config.json中的相应参数
    <ignore_js_op>

    master里面是端口配置:
        rootport 是master服务的管理端口,
        webport 是master服务的对外http端口,通过web接口实现对各个服务进程的管理。
    server里面是服务器配置:
    testserver是我们要运行的服务器,
    netport为这个服务器监听的端口,
    name为服务器名称,
    app为启动时对应的文件路径和文件名,
    app.server表示在app模块下的server文件。

    (可配置多个服务,如网游开发时需要场景,聊天等多个服务器)
    Ddb是数据库配置
        host是数据库服务地址
        user是数据库用户名
        passwd是数据库密码
        port是数据库连接端口
        db是数据库库名称
    charset是数据库连接客户端编码
    4.编写代码
    在上面填写的server配置的app对应路径下建立server.py文件,代码如下
    <ignore_js_op>

    第3行,从firefly中引入netserviceHandle方法(此方法为firefly内部定义好的方法,可直接调用,具体作用为修饰游戏的逻辑代码,以本例来讲,服务器会监听1000这个端口,当客户端传来111这个指令号时,netserviceHandle会根据111去调用所有它修饰的方法中名称为xxx_111这个方法,本例就是speak_10001,所以游戏开发时,指令号一定要避免重复)。
    第7行和16行分别定义连接建立和连接断开(即用户上线下线)后执行的操作
    第23,24两行将上面自定义的方法绑定到框架中
    第26行,将netserviceHandle作为修饰器修饰下面要定义的函数
    第27行,定义speak_10001这个方法来处理来自客户端的请求
    这样一个最简单的聊天服务器就搭建好了,启动它,它会一直监听1000这个端口,当有客户端发来消息时,它会将客户端发来的消息发送给在线的其他用户,实现聊天功能。
    5.检验服务器
    1)编写一个简易客户端,代码如下
    <ignore_js_op>

    <ignore_js_op>

    客户端会在连接建立成功后,启用两个线程,一个执行发送消息的方法,一个执行接收消息的方法
    2)运行服务器
    <ignore_js_op>

    红线部分说明name为chat的服务器已经开始工作
    3)运行客户端
    下面开始聊天,客户端1跟客户端2打招呼,客户端3乱入:
    <ignore_js_op>

    <ignore_js_op>

    <ignore_js_op>

    12.png (14.8 KB, 下载次数: 578)

    下载附件  保存到相册

    2013-10-14 10:31 上传

     


    OK,服务器没有问题。

    <ignore_js_op> chat_rooms.rar (3.26 KB, 下载次数: 201) 
    <ignore_js_op> client.rar (852 Bytes, 下载次数: 185) 
  • 相关阅读:
    leetcode701. Insert into a Binary Search Tree
    leetcode 958. Check Completeness of a Binary Tree 判断是否是完全二叉树 、222. Count Complete Tree Nodes
    leetcode 110. Balanced Binary Tree
    leetcode 104. Maximum Depth of Binary Tree 111. Minimum Depth of Binary Tree
    二叉树
    leetcode 124. Binary Tree Maximum Path Sum 、543. Diameter of Binary Tree(直径)
    5. Longest Palindromic Substring
    128. Longest Consecutive Sequence
    Mac OS下Android Studio的Java not found问题,androidfound
    安卓 AsyncHttpClient
  • 原文地址:https://www.cnblogs.com/123ing/p/3981864.html
Copyright © 2020-2023  润新知