Testing Site Testing Site

skip to navigation
skip to content

ws2s-python 1.0.2

transform websocket to socket, bring socket to browser-side js

todo list
- ws2s.js
- fredis

ws2s--bring socket to browser-side js
ws2s(websocket to socket) is a websocket server that handle socket(tcp)s.

the simplest workflow might be like this:

first, a websocket client(we called **`"ws"`**) ask ws2s_server to create a socket(we called **`"s"`**) for it.
then, **`"ws"`** ask ws2s_server to use **`"s"`** to send data.
when **`"s"`** received data, ws2s_server will notify **`"ws"`** with the received data.


with this workflow, javaScript running on a browser got the ability to use socket.

[ws2s-js](https://github.com/playlay/ws2s-js) is a javaScript websocket client wrapper that provide socket-like interface to communicate with ws2s_server.
based on the socket_wrapper, other wrappers like redis_wrapper will be provided. then an online redis client will be available at [fredis](https://feling.io/redis/)

client case
a ws2s server at `wss://feling.io/ws2s-server/` is ready for test case

var ws = new WebSocket("wss://feling.io/ws2s-server/")
ws.onmessage = (event) => {
console.log("onmessage: ", event.data)
ws.onopen = () => {
command: "connect",
host: "www.baidu.com",
port: 80
command: "send",
data: "GET / HTTP/1.1\r\nHost: www.baidu.com\r\nConnection: close\r\n\r\n"
ws.onclose = () => {

ws2s works on py2、py3、windows、linux、osx.

if you are using python 3.6, you can install ws2s from pypi:
pip install ws2s-python --upgrade

if you can't install ws2s from pypi, try install from github:
pip install git+https://github.com/playlay/ws2s

after installed ws2s:
`ws2sd` command can be used in shell,
`~/.ws2s/` directory will be created when you exec `ws2sd`

config file is store at `~/.ws2s/config.json`.



all kinds of requests are listed below:
"command": "connect",
"command": "send",
"data":"GET / HTTP/1.1\r\nHost:\r\nConnection: close\r\n\r\n"
"command": "close"
you can find out that:

1. message(we called request) send to ws2s_sever is a json format string.
2. a "command" field is required

message(we called response) received from ws2s_sever, is a json format string too:
"success": true,
"code": -1,
"message": "recv data",
"data": ""
As the example above:
- "message" field is for human.
- "success" field can be ignored.

when "code" field = -1, "data" field is presented.
that means ws2s_server received data from peer.

when "code" field = 0.
usually means ws2s_server successfully completed the most recent command

when "code" field > 0.
means something is not normal:
when "code" = 1:
unknown exception, you can submit an issue to ws2s

when "code" = 2:
ConnectionRefusedError raisesd when ws2s_server try to
connect host:port you specified

when "code" = 3:
IllegalSocketState, just reSend an "connect" request like:

when "code" = 4:
usually means you want ws2s_server to connect,
but ws2s_server refused to do that

File Type Py Version Uploaded on Size
ws2s_python-1.0.2-py2.py3-none-any.whl (md5) Python Wheel py2.py3 2018-02-13 15KB