A module to connect your server and your clients and exchange information with them
Project description
Pyintercon is a python module to connect a server and clients allowing them to exchange information
When an instance of Client sends a request to an instance of Server, the value returned by the request handler
function is the response sent to the client.
See below for how to set a request handler function and how it works
Installation
pip install pyintercon
Example:
Server:
>>> from pyintercon import Server
>>> # initialize the server
>>> sv = Server()
>>> # run the server using hostname and port
# the default hostname is "localhost"
>>> sv.activate("", 8080)
"""Server is activated on localhost:8080...
Tap CTRL + C to quit !!!!!"""
Client
>>> from pyintercon import Client
>>> # initialize the client
>>> cl = Client()
>>> # connect client to server by calling the connect method with $hostname and $port used as for server.activate
>>> cl.connect("localhost", 8080)
# you will get on server side a message like this
>>> """ server output:
('127.0.0.1', 44042) is connected ...
"""
>>> # You are ready to go with pyintercon
>>> # You can send a request to server by calling the send method of the client instance
>>> response = cl.send({ message: "Hello World !" })
>>> print(response)
{'status': 1, 'message': 'default'}
>>> # use disconnect method to disconnect from the server
>>> cl.disconnect()
# you will get on server side a message like this
>>> """ server output:
('127.0.0.1', 44042) is disconnected ...
"""
The server manage the request by executing the request handler function and sends its returned value as response
This function takes the request data (dict object) and returns the a value which will be used as response. The default handler returns {"status": 1, "message": "default"} for everything.
This can be edited by setting a custom handler using setRequestHandler method
>>> sv = Server() >>> server.setRequestHandler(your_handler_function)See example below
Example:
Server
from pyintercon import Server
def response_loader(request):
""" Just reverse the message content.
It takes dict object and returns dict object
"""
res = {"message": request["message"][::-1]}
return res
def main():
sv = Server()
# set the request handler function
sv.setRequestHandler(response_loader)
sv.activate("localhost", 8080)
if __name__ == "__main__":
main()
Client
>>> from pyintercon import Client
>>> cl = Client()
>>> cl.connect("localhost", 8080)
>>> res = cl.send({"message": "Hello World !"})
>>>
>>> print(res)
{"message": "! dlroW olleH"}
Features:
- Add more events, possibility to emit events.
client.emit("event_name", callback_function)
at the moment sending the request is considered as the only event
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file pyintercon-2.1.2.tar.gz
.
File metadata
- Download URL: pyintercon-2.1.2.tar.gz
- Upload date:
- Size: 4.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.0 CPython/3.8.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 785ad59f7d9c9fa98be1811a7647841099d06b153ccd71245bb2334ec2e8cbcd |
|
MD5 | 8ed3b531ed4e15db9920623dffef7386 |
|
BLAKE2b-256 | b806d1081c43385545c3c137c79ac34883b6d00cba44428888508efcda12d8d5 |
File details
Details for the file pyintercon-2.1.2-py3-none-any.whl
.
File metadata
- Download URL: pyintercon-2.1.2-py3-none-any.whl
- Upload date:
- Size: 5.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.0 CPython/3.8.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d9c3c9446dcf88a339fd151d1c5c123bdecdc9e66e310c5e62386e6e76536c39 |
|
MD5 | 15bf60ea8125793b878e1b49b4a5a9d1 |
|
BLAKE2b-256 | 5e3e7d60d48d68977fcadc45e9580abc322fcf732129ee8fa0ff1f4b6b4054db |