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) 

使用Firefly编写简易聊天室的更多相关文章

  1. Laravel + Swoole 打造IM简易聊天室

    最近在学习Swoole,利用Swoole扩展让PHP生动了不少,本篇就来Swoole开发一款简易的IM聊天室 应用场景:实现简单的即时消息聊天室. (一)扩展安装 pecl install swool ...

  2. php+websocket搭建简易聊天室实践

    1.前言 公司游戏里面有个简单的聊天室,了解了之后才知道是node+websocket做的,想想php也来做个简单的聊天室.于是搜集各种资料看文档.找实例自己也写了个简单的聊天室. http连接分为短 ...

  3. node.js+websocket实现简易聊天室

    (文章是从我的个人主页上粘贴过来的,大家也可以访问我的主页 www.iwangzheng.com) websocket提供了一种全双工客户端服务器的异步通信方法,这种通信方法使用ws或者wss协议,可 ...

  4. php_D3_“简易聊天室 ”实现的关键技术 详解

                      PHP+MySQL实现Internet上一个简易聊天室的关键技术  系统目标: 聊天室使用数据库汇集每个人的发言,并可将数据库内的发言信息显示在页面,让每个用户都可 ...

  5. Python开发【笔记】:aiohttp搭建简易聊天室

    简易聊天室: 1.入口main.py import logging import jinja2 import aiohttp_jinja2 from aiohttp import web from a ...

  6. 学习JavaSE TCP/IP协议与搭建简易聊天室

    一.TCP/IP协议 1.TCP/IP协议包括TCP.IP和UDP等 2.域名通过dns服务器转换为IP地址 3.局域网可以通过IP或者主机地址寻找到相应的主机 4.TCP是可靠的连接,效率低,且连接 ...

  7. 示例:Socket应用之简易聊天室

    在实际应用中,Server总是在指定的端口上监听是否有Client请求,一旦监听到Client请求,Server就会启动一个线程来响应该请求,而Server本身在启动完线程之后马上又进入监听状态. 示 ...

  8. node+websocket创建简易聊天室

    关于websocket的介绍太多,在这就不一一介绍了,本文主要实现通过websocket创建一个简易聊天室,就是90年代那种聊天室 服务端 1.安装ws模块,uuid模块,ws是websocket模块 ...

  9. 基于Node.js + WebSocket 的简易聊天室

    代码地址如下:http://www.demodashi.com/demo/13282.html Node.js聊天室运行说明 Node.js的本质就是运行在服务端的JavaScript.Node.js ...

随机推荐

  1. window10 Powershell使用curl命令报错解决方法

    报错信息:curl : 无法分析响应内容,因为 Internet Explorer 引擎不可用,或者 Internet Explorer 的首次启动配置不完整.请指定 UseBasicParsing ...

  2. centos系统mysql数据库忘记密码重置方法(ERROR 1045 28000 Access denied...)

    当mysql的密码错误的时候,就会报如下这样的错误信息 解决方法如下: 首先输入mysqld_safe --skip-grant-tables 然后停止mysql服务,输入service mysqld ...

  3. go chapter 3 - defer

    https://www.cnblogs.com/bonelee/p/6861777.html 函数返回之前(或任意位置执行 return 语句之后)一刻才执行某个语句或函数.用法类似于面向对象编程语言 ...

  4. EasyUI学习总结(六)——EasyUI布局(转载)

    本文转载自:http://www.cnblogs.com/xdp-gacl/p/4088198.html 一.EasyUI布局介绍 easyUI布局容器包括东.西.南.北.中五个区域,其中中心面板是必 ...

  5. 手机发送验证码—.net代码

    注册过程中,短信发送验证码流程如下: (1).用户提交手机号码,申请湖区验证码 (2).网站按照预制规则生成验证码 (3).网站将用户手机号码和验证码发送到短信平台 (4).将制定内容发送到制定手机号 ...

  6. luogu P1396 营救

    题目描述 “咚咚咚……”“查水表!”原来是查水表来了,现在哪里找这么热心上门的查表员啊!小明感动的热泪盈眶,开起了门…… 妈妈下班回家,街坊邻居说小明被一群陌生人强行押上了警车!妈妈丰富的经验告诉她小 ...

  7. Spring+Spring MVC+MyBatis整合

    一.准备工作    1.1导入所需jar包 1.2数据库 CREATE TABLE `t_customer` ( `id` ) NOT NULL AUTO_INCREMENT, `username` ...

  8. Java学习笔记(11)

    自定义异常类: 自定义异常类的步骤:自定义一个类继承Exception即可 public class CustomClass { public static void main(String[] ar ...

  9. PHP与mysql数据库

    1.PHP访问数据库的一般步骤 连接MySQL服务器 选择MySQL数据库 执行SQL语句(增,删,改,查) 关闭结果集,释放资源 关闭MySQL服务器的连接 需要查的表的数据: 2.连接和关闭实例 ...

  10. Codeforces Gym 100269G Garage 数学

    Garage 题目连接: http://codeforces.com/gym/100269/attachments Description Wow! What a lucky day! Your co ...