Skip to main content

An easy library to use to host an HTTP or a Websocket server with plenty of functionality

Project description

Very simple way to interact with any http and Websocket requests

from darius.server import server,routes
from darius.client_side import status

class Home(routes.View):
    def GET(self,request,**kwargs):
        return status.Http200().__call__("<h1>Home Page</h1>")

    def POST(self,request,**kwargs):
        return status.HttpBinary().__call__("dog.png",display_in_browser=True)

    def __init__(self,*args,**kwargs): 
        """Optional : Add your own custom HTTP method requests"""
        super(Home,self).__init__(*args,**kwargs)
        self.cases['CREATE'] = self.POST # Custom HTTP method

class Chat(routes.SocketView):
    def onConnect(self,client,**kwargs):
        key = kwargs.get("key")
        username = kwargs.get("headers")['Cookies']['username']
        self.accept(client,key)
        return {"username" : username,"id" : ord(username[0]) % 51} # Stored as state with client

    def onMessage(self,client,**kwargs):
        data = kwargs.get('data') # Message sent
        path_info = kwargs.get("path_info") # Containing information about clients
        send = kwargs.get('send_function') # Functions to send data

        # Send the message to every client
        for client in path_info['clients']:
            if(client['username'].startswith("a")) or client['id'] % 2 == 0:
                send(client,data)

    def onExit(self,client,**kwargs):
        print("Client exited!")

And then to actually list the paths and start the Server

WS_URLS = {
    r'/chat(\/)?' : Chat()
}

HTTP_URLS = {
    r'/home(\/)?' : Home()
}

server.Server(WS_URLS,HTTP_URLS,port=8000).start()

More can be found at Github

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

darius-1.0.0.tar.gz (20.2 kB view hashes)

Uploaded Source

Built Distribution

darius-1.0.0-py3-none-any.whl (22.5 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page