0.6.1 • Published 11 years ago

brokr v0.6.1

Weekly downloads
3
License
-
Repository
github
Last release
11 years ago

Brokr

brokr is a javascript RPC+PUB/SUB via Websocket library that you shouldn't use.

Usage

In the browser

If you need to use Brokr in the browser, you can

  • Use the included connect middleware Brokr.middleware(url) to serve a browser friendly Brokr version.
  • Use the Brokr.browserify(callback) function to get the source as a string.
  • Use the included build tool. Simply run make build in the Brokr module root to build the brokr.web.js file.

Brokr spec.

very much work in progress

brokr
    v : version     1.0
    t : type        hey, req, res, pub, sub, unsub, pserr,
    p : package     data. Format depends on type field

Meta

"Hey" package

{
    "brokr": {
        "v": "1.0",
        "t": "hey",
        "p": {
        }
    }
}

RPC

####request package containing 2 requests

{
    "brokr": {
        "v": "1.0",
        "t": "req",
        "p": {
            "abcd1": {
                "fn": "ping",
                "args": []
            },
            "abcd2": {
                "fn": "time",
                "args": []
            },
        }
    }
}

####response package containing 2 responses

{
    "brokr": {
        "v": "1.0",
        "t": "res",
        "p": {
            "abcd2": [null, "pong"],        //[error, data]
            "abcd1": [null, 1370981044.033] //[error, data]
        }
    }
}

PubSub

  • Topics must be created on the fly.
  • There is no queue

####subscribe package

{
    "brokr": {
        "v": "1.0",
        "t": "sub",
        "p": {
            "abcd1": {
                "topic": "notifications"
            },
            "abcd2": {
                "topic": "new-topic"
            }
        }
    }
}

####subscribe OK/err

Response to each subscription request. null means no error.

Errors codes are: (WIP)

010   That is already the case   

100   Generic client error
101   Not a subscriber

200   Generic server error
{
    "brokr": {
        "v": "1.0",
        "t": "pserr",
        "p": {
            "abcd1": null,
            "abcd2": null
        }
    }
}

####unsubscribe package

{
    "brokr": {
        "v": "1.0",
        "t": "unsub",
        "p": {
            "abcd3": {
                "topic": "notifications"
            },
            "abcd4": {
                "topic": "new-topic"
            }
        }
    }
}

and the response

{
    "brokr": {
        "v": "1.0",
        "t": "pserr",
        "p": {
            "abcd3": null,
            "abcd4": null
        }
    }
}

####publish package

Request that server publishes messages on topics

There is no response to this request

{
    "brokr": {
        "v": "1.0",
        "t": "pub",
        "p": {
            "notifications": [{"hello": "world"}]
        }
    }
}
0.6.1

11 years ago

0.6.0

11 years ago

0.5.0

11 years ago

0.4.0

11 years ago

0.3.4

11 years ago

0.3.3

11 years ago

0.3.2

11 years ago

0.3.1

11 years ago

0.3.0

11 years ago

0.2.0

11 years ago

0.1.0

11 years ago