Windows7(32bit)用Firefly创建第一个示例

简介:

安装完成Firefly之后,在python script包(即Scripts文件夹)中就存在 firefly-admin的工具。

创建第一个工程


打开命令行窗口,运行如下命令:


firefly-admin.py createproject chat_rooms


这样就创建好了chat_rooms的工程,工程目录结构如下:(后补充,今天晚上无法上传图片!)


注意到chat_rooms文件夹下存在一个文件startmaster.py,它正是工程的启动模块,建立工程后可以直接启动startmaster.py进行测试。


方法是以管理员方式启动并进行CMD窗口,然后运行如下命令:


python startmaster.py


第一次运行时,出现类似于下面的运行错误:

import os,sys,affinity
  File "build\bdist.win32\egg\affinity\__init__.py", line 15, in <module>
  File "build\bdist.win32\egg\affinity\__init__.py", line 15, in <module>
ImportError: No module named win32api
ImportError: No module named win32api

估计是没有安装pywin32所致。于是,下载并运行pywin32-218.win32-py2.7.exe。再运行上面的程序即OK。出现类似如下的等待状态。


C:\Python27\Scripts\chat_rooms>python startmaster.py
2014-12-17 22:03:15+0800 [-] Log opened.
2014-12-17 22:03:15+0800 [-] DelaySite starting on 9998
2014-12-17 22:03:15+0800 [-] Starting factory <firefly.web.delayrequest.DelaySite instance at 0x02953AF8>
2014-12-17 22:03:15+0800 [-] BilateralFactory starting on 9999
2014-12-17 22:03:15+0800 [-] Starting factory <firefly.distributed.root.BilateralFactory instance at 0x0295
2014-12-17 22:03:16+0800 [-] Log opened.
2014-12-17 22:03:16+0800 [-] Starting factory <twisted.spread.pb.PBClientFactory instance at 0x02A79468>
2014-12-17 22:03:16+0800 [-] Log opened.
2014-12-17 22:03:16+0800 [-] gate start...
2014-12-17 22:03:16+0800 [-] gate pid: 2712
2014-12-17 22:03:16+0800 [-] Starting factory <twisted.spread.pb.PBClientFactory instance at 0x02A09378>
2014-12-17 22:03:16+0800 [-] net start...
2014-12-17 22:03:16+0800 [-] net pid: 10700
2014-12-17 22:03:16+0800 [BilateralBroker,0,127.0.0.1] node [gate] takeProxy ready
2014-12-17 22:03:16+0800 [BilateralBroker,1,127.0.0.1] node [net] takeProxy ready


再以管理员方式启动并进行CMD窗口,然后运行如下命令:

python clienttest.py


此时,当前窗口(上面这个CMD)处于等待状态。上面第一个CMD窗口(SERVER)出现类似如下提示信息:

2014-12-17 22:31:31+0800 [firefly.netconnect.protoc.LiberateFactory] Client 1 login in.[127.0.0.1,42321]
2014-12-17 22:31:31+0800 [LiberateProtocol,1,127.0.0.1] call method echo_1 on service[single]
2014-12-17 22:31:31+0800 [LiberateProtocol,1,127.0.0.1] call method echo_1 on service[single]
2014-12-17 22:31:31+0800 [LiberateProtocol,1,127.0.0.1] call method echo_1 on service[single]
2014-12-17 22:31:31+0800 [LiberateProtocol,1,127.0.0.1] call method echo_1 on service[single]
2014-12-17 22:31:31+0800 [LiberateProtocol,1,127.0.0.1] call method echo_1 on service[single]
2014-12-17 22:31:31+0800 [LiberateProtocol,1,127.0.0.1] call method echo_1 on service[single]
2014-12-17 22:31:31+0800 [LiberateProtocol,1,127.0.0.1] call method echo_1 on service[single]

2014-12-17 22:31:31+0800 [LiberateProtocol,1,127.0.0.1] call method echo_1 on service[single]

......

这说明客户端与服务器端通信正常。


注意:clienttest.py文件位于tool目录下。


另外,config.json是用来描述服务端整体架构的配置文件(目前我没有作任何修改),可以在文件中配置添加新的服务进程,描述各个服务进程的连接结构。以及数据库配置和memcached缓存服务配置。


根据Firefly官方文档,app包中就是用来服务器逻辑的地方,app包中的apptest.py提供了测试服务器的处理方式。

于是,再启动一个CMD窗口,运行如下命令:

python apptest.py


可是出现如下错误提示:

Traceback (most recent call last):
  File "apptest.py", line 5, in <module>
    @netserviceHandle
  File "C:\Python27\lib\site-packages\firefly-1.3.3dev_r0-py2.7.egg\firefly\server\globalobject.py", line 40, in netserviceHandle
    GlobalObject().netfactory.service.mapTarget(target)
AttributeError: 'NoneType' object has no attribute 'service'

网络搜索一下,没有发现恰当答案,先等等再说吧。反正这个拦路虎是迟早要解决掉的......



















本文转自朱先忠老师51CTO博客,原文链接: http://blog.51cto.com/zhuxianzhong/1591199,如需转载请自行联系原作者


相关文章
|
4月前
|
C# Windows 开发者
当WPF遇见OpenGL:一场关于如何在Windows Presentation Foundation中融入高性能跨平台图形处理技术的精彩碰撞——详解集成步骤与实战代码示例
【8月更文挑战第31天】本文详细介绍了如何在Windows Presentation Foundation (WPF) 中集成OpenGL,以实现高性能的跨平台图形处理。通过具体示例代码,展示了使用SharpGL库在WPF应用中创建并渲染OpenGL图形的过程,包括开发环境搭建、OpenGL渲染窗口创建及控件集成等关键步骤,帮助开发者更好地理解和应用OpenGL技术。
296 0
|
4月前
|
存储 Linux Windows
【应用服务 App Service】App Service For Windows 如何挂载Storage Account File Share 示例
【应用服务 App Service】App Service For Windows 如何挂载Storage Account File Share 示例
|
7月前
|
Windows
超详细的纯净windows系统重装示例
本文介绍了如何使用大白菜制作启动盘来安装纯净版Windows系统,以避免安装Ghost版本时附带的不必要的软件。
71 1
|
6月前
|
Windows
超详细的纯净windows系统重装示例
超详细的纯净windows系统重装示例
33 0
|
JavaScript Windows
Node Sass could not find a binding for your current environment: Windows 64-bit with Node.js 1x.x
Node Sass could not find a binding for your current environment: Windows 64-bit with Node.js 1x.x
96 0
|
API Windows
[笔记]Windows核心编程《番外篇》常用的NT API及使用示例
[笔记]Windows核心编程《番外篇》常用的NT API及使用示例
200 0
|
安全 Windows
一招教你判断Windows系统的版本 32Bit or 64Bit
一招教你判断Windows系统的版本 32Bit or 64Bit
535 0
|
API Windows
[笔记]Windows核心编程《番外篇》常用的NT API及使用示例
Windows核心编程《番外篇》常用的NT API及使用示例
904 0
[笔记]Windows核心编程《番外篇》常用的NT API及使用示例
|
算法 网络协议 Unix
QT应用编程: windows下使用UDT传输协议_创建工程示例(高速数据传输)
QT应用编程: windows下使用UDT传输协议_创建工程示例(高速数据传输)
504 0
QT应用编程: windows下使用UDT传输协议_创建工程示例(高速数据传输)
|
安全 C++ Windows
windows C++ 互相等待线程同步示例
windows C++ 互相等待线程同步示例 开发中遇到线程同步问题,可抽象为如下模型: 1、主线程的继续执行的前提是子线程的变量已经初始化完毕。 2、子线程待主线程执行完毕后继续执行后续的初始化操作。 重复1,2执行……直到通信结束。
201 0
windows C++ 互相等待线程同步示例