pywebsocket的搭建及使用

一、搭建pywebsocket服务

1.下载pywebsocket:

git clone https://github.com/googlearchive/pywebsocket

这里将代码下载到了/usr/local/pywebsocket该目录,但git时会自动创建pywebsocket。所以这里就变成了两个相同的目录。由于比较懒,就懒得挪了。

2.安装pywebsocket
进入pywebsocket主目录中,输入以下命令:

python setup.py build
sudo python setup.py install

3.测试pywebsocket是否安装成功
首先进入子目录pywebsocket/mod_pywebsocket

sudo python standalone.py -p 81 -w ../example/

在example中有很多的py示例脚本。在js中可以做对接使用。接下来介绍如何测试js。

二、使用测试pywebsocket

直接上js脚本(这里对接的是echo_wsh.py脚本):

//这是初始化代码,用来建立websocket用的
var ws = new WebSocket("ws://192.168.0.105:81/echo");

//设置WebSocket回调函数(这些函数都是被动触发的,只有收到对应事件才会回调)
ws.onopen = function()
{
    alert("建立连接");
};

ws.onmessage = function (evt) 
{ 
    var received_msg = evt.data;
    alert("接收到数据:["+received_msg+"]");
};

ws.onclose = function()
{ 
    alert("连接已关闭"); 
};
//这是用来发送的函数
ws.send("这是一个发送的数据包");

上面的就是js中的测试代码了,可以直接连接服务器进行测试。如果要看对应的python代码,可以在pywebsocket/example目录中查看对应脚本。例如:本文用到的echo_wsh.py。

注意:上面的初始化代码是不阻塞的,设置完回调直接就过了。当socket建立后会调用回调函数onopen。相反,关闭调用onclose。

三、在linux上创建pywebsocket服务

上面的搭建好的pywebsocket仅仅只是个脚本而已,每次都要手动启动。所以这里将其创建为系统服务,随系统自启动。

1.创建服务启动文件:

vim /usr/lib/systemd/system/pywebsocket.service

内容如下:

[Unit]
Description=websocket service
After=multi-user.target

[Service]
Type=idle
ExecStart=/usr/bin/python /usr/local/pywebsocket/pywebsocket/mod_pywebsocket/standalone.py -p 81 -w /home/WebSocketProject/
ExecStop=/bin/kill -15 $MAINPID 

[Install]
WantedBy=multi-user.target

Description:服务描述,自己修改。
ExecStart:是启动命令行,所有路径都要用绝对路径,可以根据自己的路径做修改。
其他项不改。

建立好服务文件后就可以开始配置服务了,命令如下:

//更改文件权限
sudo chmod 644 /usr/lib/systemd/system/pywebsocket.service
//重新加载服务配置
systemctl daemon-reload
//设置为开机启动
systemctl enable pywebsocket.service
//启动服务
systemctl start pywebsocket.service
//显示所有服务状态
systemctl list-units --type=service
上一篇:浏览器与服务器长连接技术


下一篇:ForkJoin全解2:forkjoin实际工作流程与实现