一、使用工具:python、web.py
二、搭建步骤:
1、 环境搭建。
安装python2.7.10,注意要把python路径加入系统环境变量。版本不能低于2.7.9,但不能用3.0以上,web.py支持不好。安装web.py, 官方网下载来装就行,记得是解压后进去:python setup.py install,安装wingIDE,这个是最好用的python编辑器,装apache并配置python-wscgi,
2. 开发。
建立数据库建议写个生成脚本,比如createDataBase.py,有改动重新运行一遍,不要试用ide去建。
3. 发布网站。
发布网站用apache+pywscgi即可,当然如果用户少需求不高直接在命令行python index.py 8080也能让网站跑起来,但是这样有几个缺点:
a. 所有到这台服务器这个系统的8080端口访问都变成了这个网站,也就是说如果你无法指定特定域名了。
b. 静态文件都是每次去读文件非常慢,比如你的网站logo,网站js,字体等,会极大的拖慢网站速度!!!这个非常严重,这个是我试用apache的主要原因。专业服务器程序优化的好,实测快了不少。
三、注意事项:注意要把python路径加入系统环境变量。版本不能低于2.7.9,但不能用3.0以上,web.py支持不好。
1. 环境搭建。环境搭建比较繁琐,记得当时也是满世界找资料,所以我直接打包好了所有的文件(apache(已经放进去python-wscgi) + web.py+apache所需要的vs2010运行库+python+网站文件),直接解压放上去就能用。有需要同学让我传一个或者网盘发一把就行。
如果在windows,最好在win7以上版本,我用win8。linux则ubuntu较好,建议12.04以上版本,不过linux我仅仅是开发用过,最终运行的服务器是采用windows+apache:
安装python2.7.10,可以去官方网站下载,注意要把python路径加入系统环境变量。版本不能低于2.7.9,但不能用3.0以上,web.py支持不好。
安装web.py, 官方网下载来装就行,记得是解压后进去:python setup.py install
安装wingIDE,这个是最好用的python编辑器,可惜只能有几天试用,我就是不停的试用进行开发,用它的好处就是代码可以跳转并且支持调试,需要调试直接将程序文件run起来,单步下段点都可以。
装apache并配置python-wscgi,这个比较惨,花了好多时间去搜索才搞定,主要是windows上的python-wscgi不好难找。
为了节省以后的开发时间,我把配置好的apache给打包了,反正也是绿色的,新建网站只需要在服务器上配置开机启动apache,并在apache的config里面修改下自己网站路径就行。
2. 开发。
开发阶段倒是没什么好说的,web.py官方有教程,不过这里我需要提几点建议:
如果可以务必全站用utf-8编码。
建立数据库建议写个生成脚本,比如createDataBase.py,有改动重新运行一遍,不要试用ide去建。
是呼入呼出都通知,还是只呼入或呼出,在Nway.conf配置文件中有个```
#all,caller,callee
#all 所有
#caller 呼出
#callee 呼入
event_direction=caller
```
在这里我们假设有一个工号为 8000,密码是1234,绑定的坐席是1001
python代码需要 pip install websocket-client
然后存为wspython.py
python wspython.py 即可
注册一个分机到139.196.40.50 ,这里的例子是1001,139.196.40.50:5062,密码1234 就等着看吧
```
__author__ = 'lihao,18621575908'
#https://github.com/websocket-client/websocket-client
import websocket
try:
import thread
except ImportError: # TODO use Threading instead of _thread in python3
import _thread as thread
import time
import sys
import json
def on_message(ws, message):
print(message)
def on_error(ws, error):
print(error)
def on_close(ws):
print("### closed ###")
def on_open(ws):
def run(*args):
s = '{"Agent":"8000","Password":"1234","Extension":"1001"}'
ws.send(s)
time.sleep(1)
thread.start_new_thread(run, ())
if __name__ == "__main__":
websocket.enableTrace(True)
if len(sys.argv) <2:
host = "ws://139.196.40.50:8084/fsgui"
else:
host = sys.argv[1]
ws = websocket.WebSocketApp(host,
on_message=on_message,
on_error=on_error,
on_close=on_close)
ws.on_open = on_open
ws.run_forever()
```
那么就会有关分机1001的消息都会送过来
--- request header ---
GET /fsgui HTTP/1.1
Upgrade: websocket
Connection: Upgrade
Host: 139.196.40.50:8084
Origin: http://139.196.40.50:8084
Sec-WebSocket-Key: bDwhhTj9SsceStSxymMF+w==
Sec-WebSocket-Version: 13
-----------------------
--- response header ---
HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Accept: 1Es8igdAgQfSXWXoDx4j2rwpOck=
-----------------------
send: '\x81\xb54\xfedSO\xdc%4Q\x90\x10q\x0e\xdc\\c\x04\xceF\x7f\x16\xae\x05 G\x89\x0b!P\xdc^q\x05\xccWg\x16\xd2F\x16L\x8a\x01=G\x97\x0b=\x16\xc4Fb\x04\xceUqI'
{"Result":200,"Message":"ok"}