{ "info": { "author": "Nikolay Kim", "author_email": "fafhrd91@gmail.com", "bugtrack_url": null, "classifiers": [ "Framework :: AsyncIO", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: Implementation :: CPython", "Topic :: Internet :: WWW/HTTP" ], "description": "SockJS server based on Asyncio (PEP 3156)\n=========================================\n\n.. image :: https://secure.travis-ci.org/aio-libs/sockjs.svg\n :target: https://secure.travis-ci.org/aio-libs/sockjs\n\n`sockjs` is a `SockJS `_ integration for\n`aiohttp `_. SockJS interface\nis implemented as a `aiohttp` route. Its possible to create any number\nof different sockjs routes, ie `/sockjs/*` or\n`/mycustom-sockjs/*`. You can provide different session implementation\nand management for each sockjs route.\n\nSimple aiohttp web server is required::\n\n [server:main]\n use = egg:gunicorn#main\n host = 0.0.0.0\n port = 8080\n worker = aiohttp.worker.GunicornWebWorker\n\n\nExample of sockjs route::\n\n def main(global_settings, **settings):\n app = web.Application(loop=loop)\n app.router.add_route('GET', '/', index)\n sockjs.add_endpoint(app, prefix='/sockjs', handler=chatSession)\n\n handler = app.make_handler()\n srv = loop.run_until_complete(\n loop.create_server(handler, '127.0.0.1', 8080))\n print(\"Server started at http://127.0.0.1:8080\")\n try:\n loop.run_forever()\n except KeyboardInterrupt:\n srv.close()\n loop.run_until_complete(handler.finish_connections())\n\n\nClient side code::\n\n \n \n\n\nSupported transports\n--------------------\n\n* websocket `hybi-10\n `_\n* `xhr-streaming\n `_\n* `xhr-polling\n `_\n* `iframe-xhr-polling\n `_\n* iframe-eventsource (`EventSource\n `_ used from an `iframe via\n postMessage\n `_)\n* iframe-htmlfile (`HtmlFile\n `_\n used from an *iframe via postMessage*.\n* `jsonp-polling `_\n\n\nRequirements\n------------\n\n- Python 3.4\n\n- gunicorn 19.2.0\n\n- aiohttp https://github.com/aio-libs/aiohttp\n\n\nExamples\n--------\n\nYou can find several `examples` in the sockjs repository at github.\n\nhttps://github.com/aio-libs/sockjs/tree/master/examples\n\n\nLicense\n-------\n\nsockjs is offered under the Apache 2 license.\n\n=======\nCHANGES\n=======\n\n\n0.10.0 (2019-10-20)\n-------------------\n\n- Sync with aiohttp 3.6 (#298)\n\n0.9.1 (2018-12-04)\n------------------\n\n- Minor code styling cleanups\n\n0.9.0 (2018-10-11)\n------------------\n\n- Support Python 3.7. The minimal available Python version is 3.5.3 (#240)\n\n0.8.0 (2018-06-15)\n------------------\n\n- Fix heartbeat (#214)\n\n0.7.1 (2018-03-05)\n------------------\n\n- Fix compatibility with aiohttp 3.0+ again.\n\n0.7.0 (2018-02-25)\n------------------\n\n- Fixed compatibility with aiohttp 3.0+ (#169)\n\n0.6 (2017-04-13)\n----------------\n\n- Fixed support for aiohttp 2.0+.\n\n0.5 (2016-09-26)\n----------------\n\n- Mark SockJSRoute.handler and SockJSRoute.websocket as coroutines. #25\n\n- Remove a check for \"ORIGIN\" header #12\n\n- Process FRAME_MESSAGE_BLOB message type #12\n\n0.4 (2016-02-04)\n----------------\n\n- Fixed lost event-loop argument in `sockjs.transports.websocket.WebSocketTransport`\n- Fixed lost event-loop argument in `sockjs.transports.rawwebsocket.RawWebSocketTransport`\n- Fixed RawRequestMessage. Add raw_header argument (aiohttp 0.21+)\n- Fixed many warnings\n- Fixed `sockjs.route` add_endpoint without name bug\n\n0.3 (2015-08-07)\n----------------\n\n- Fixed calls of ``SessionManager.aquire()`` - was removed the unnecessary second argument.\n- Fixed the incorrect argument in one call of ``cors_headers()``.\n- Fixed many errors. The code is not perfect, but at least it was working as it should.\n\n0.2 (2015-07-07)\n----------------\n\n- Fixed packaging\n\n0.1.0 (2015-06-21)\n------------------\n\n- Initial release\n\n", "description_content_type": "", "docs_url": "https://pythonhosted.org/sockjs/", "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/aio-libs/sockjs/", "keywords": "", "license": "Apache 2", "maintainer": "", "maintainer_email": "", "name": "sockjs", "package_url": "https://pypi.org/project/sockjs/", "platform": "", "project_url": "https://pypi.org/project/sockjs/", "project_urls": { "Homepage": "https://github.com/aio-libs/sockjs/" }, "release_url": "https://pypi.org/project/sockjs/0.10.0/", "requires_dist": [ "aiohttp (>=3.0.0)" ], "requires_python": ">=3.5.3", "summary": "SockJS server implementation for aiohttp.", "version": "0.10.0" }, "last_serial": 6003544, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "54a37a74c2a64918829961704f69c576", "sha256": "52f0372295c20c01bcd8af05b4577ebf6f072a7fb77b0cd5a2fede642c020f10" }, "downloads": -1, "filename": "sockjs-0.1.tar.gz", "has_sig": false, "md5_digest": "54a37a74c2a64918829961704f69c576", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13873, "upload_time": "2015-06-21T18:34:34", "url": "https://files.pythonhosted.org/packages/8b/7e/6b7f06d69800f52f293871a4453724f0801fbf125c844a2c1f8914205057/sockjs-0.1.tar.gz" } ], "0.10.0": [ { "comment_text": "", "digests": { "md5": "b654132f2d6f4a944d9ff844f5bb1aa7", "sha256": "e0fed79935269d0fb8c5b5200ac1e77caa2c44c4e201b7c1852eda47917ce817" }, "downloads": -1, "filename": "sockjs-0.10.0-py3-none-any.whl", "has_sig": false, "md5_digest": "b654132f2d6f4a944d9ff844f5bb1aa7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.3", "size": 23245, "upload_time": "2019-10-20T17:07:20", "url": "https://files.pythonhosted.org/packages/1d/67/ff524c6ae21b77c93d0e3dfa5112646f0bb2878eb94fbaba2f8bb4975a6e/sockjs-0.10.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "369417bd103f841f236a8623ea29353c", "sha256": "005a820387bb4611b59341eac091b05d4204050dd42e4ea6cfb83607e23e2f06" }, "downloads": -1, "filename": "sockjs-0.10.0.tar.gz", "has_sig": false, "md5_digest": "369417bd103f841f236a8623ea29353c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.3", "size": 31557, "upload_time": "2019-10-20T17:07:22", "url": "https://files.pythonhosted.org/packages/35/0e/6aa4f3283b064b04a0c7f3859c8c2c0b736c05cfb07853b6d94073c1bf63/sockjs-0.10.0.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "4dccfb635bf516b8126f0722a800843c", "sha256": "062d8457d67bf98e06c0ed5d5cd8c06d8c1b9f490b343128e3ba551f20367064" }, "downloads": -1, "filename": "sockjs-0.2.tar.gz", "has_sig": false, "md5_digest": "4dccfb635bf516b8126f0722a800843c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31486, "upload_time": "2015-07-07T23:08:52", "url": "https://files.pythonhosted.org/packages/4b/41/1ec3bd680d0a18b39e0670d852c1ed0bd30aa77b928d362f3ea25cff7bfa/sockjs-0.2.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "d2c2202a0a79e393a5221ba4a86c0f06", "sha256": "bb40be3c95ace3ea610935a9bd38bea4c3fd5246cb5a4e2ef6ae57b3854f1ff9" }, "downloads": -1, "filename": "sockjs-0.3.tar.gz", "has_sig": false, "md5_digest": "d2c2202a0a79e393a5221ba4a86c0f06", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30913, "upload_time": "2015-08-07T19:19:15", "url": "https://files.pythonhosted.org/packages/63/a0/f18ed6495e3d3e38f8dd2b76cddd820fce5f47f53ffb81173997f30d00ff/sockjs-0.3.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "f87a53925263a4cf5e3124492b59497d", "sha256": "a253434d6761f0c106a6784d0a685e4b9cb81df2456559d84c84b04007564f68" }, "downloads": -1, "filename": "sockjs-0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "f87a53925263a4cf5e3124492b59497d", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 22265, "upload_time": "2016-02-04T05:28:32", "url": "https://files.pythonhosted.org/packages/74/64/267519a2d9f8a25d595a45872706f112cda98a74d4db09d81d74d0288c4a/sockjs-0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e5e3db0e8f78a7ff77522d015229b642", "sha256": "47fb0d6316cf6f3447ede76e63ce166f6ef2dcb3f4ba9ecc5e4befd7b54b248d" }, "downloads": -1, "filename": "sockjs-0.4.zip", "has_sig": false, "md5_digest": "e5e3db0e8f78a7ff77522d015229b642", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 50759, "upload_time": "2016-02-04T05:28:16", "url": "https://files.pythonhosted.org/packages/a3/fd/158f212f1e7078c80dfbb3ed9c042cee109d3caee403970a7582e260c0a7/sockjs-0.4.zip" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "19a6ee5c0f9d72e8d6c4e2d9f35ca9db", "sha256": "af1c8704c9bccf1aa366071a32cee8ff94b818ab4d3f0b3dfa8a78c42e65563e" }, "downloads": -1, "filename": "sockjs-0.5.0-py3-none-any.whl", "has_sig": false, "md5_digest": "19a6ee5c0f9d72e8d6c4e2d9f35ca9db", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 22184, "upload_time": "2016-09-26T18:26:56", "url": "https://files.pythonhosted.org/packages/30/0c/6d880599becc8421931b63ea21198eca0eff3493ecbcc85584a06e88dcc0/sockjs-0.5.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c61f94c63800ecca3368ae93fe8efebb", "sha256": "2fff75b2bcccaed735700fbe71ef8694cde2ccfa8c22e8398962a65e30e340bc" }, "downloads": -1, "filename": "sockjs-0.5.0.tar.gz", "has_sig": false, "md5_digest": "c61f94c63800ecca3368ae93fe8efebb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33317, "upload_time": "2016-09-26T18:26:58", "url": "https://files.pythonhosted.org/packages/ae/2a/8b92508e0ffba69ef5251921a3c59afd39a5116782c6d1de088ab01dca84/sockjs-0.5.0.tar.gz" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "70b0faf5fd854183e149a70248a517ac", "sha256": "e184e75f9313594ed2f4179163ff285a7ef7490cfc088de88ded48ec722e72cf" }, "downloads": -1, "filename": "sockjs-0.6.0-py3-none-any.whl", "has_sig": false, "md5_digest": "70b0faf5fd854183e149a70248a517ac", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 22081, "upload_time": "2017-04-13T20:19:24", "url": "https://files.pythonhosted.org/packages/9b/4c/19002e784b4689a26f5b2b15588fd85f9aa59cb730c6c74b0f5590757ce5/sockjs-0.6.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3ef9509c312d34cc2bb1b996330f2e0e", "sha256": "be4b6f4119d6ee54d1bfa7f1ffdc403a0210ff85127ee105ed219763a9eec2c5" }, "downloads": -1, "filename": "sockjs-0.6.0.tar.gz", "has_sig": false, "md5_digest": "3ef9509c312d34cc2bb1b996330f2e0e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32929, "upload_time": "2017-04-13T20:19:26", "url": "https://files.pythonhosted.org/packages/54/50/dbc226291f86403ff4e8e86a23dbafa78d55de2b574801cc9a410b1a0a37/sockjs-0.6.0.tar.gz" } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "50813cf8edf2d87140ce892355ca4c45", "sha256": "0cc12e6e9486479a606020500418d7910c828825ef8d13646ed350087e9304c3" }, "downloads": -1, "filename": "sockjs-0.7.0-py3-none-any.whl", "has_sig": false, "md5_digest": "50813cf8edf2d87140ce892355ca4c45", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 22014, "upload_time": "2018-02-25T16:39:11", "url": "https://files.pythonhosted.org/packages/d1/09/2f7aac14401f21c8b892e1f580025c27f801e7c0a64c41dda85d18139089/sockjs-0.7.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0e7d1082852b05a6919007c7fecb95ff", "sha256": "f79051db731e5e68b6cfe4e34d27dc046268aae6fd4506e2d2b08db6e59d7be4" }, "downloads": -1, "filename": "sockjs-0.7.0.tar.gz", "has_sig": false, "md5_digest": "0e7d1082852b05a6919007c7fecb95ff", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33062, "upload_time": "2018-02-25T16:39:13", "url": "https://files.pythonhosted.org/packages/4a/76/6fedf8cefdf4fb7ae285acaadb88f4255a1cbc31707eea5373062b9780f9/sockjs-0.7.0.tar.gz" } ], "0.7.1": [ { "comment_text": "", "digests": { "md5": "e0961fc2a3b4676f12ed1221252980ca", "sha256": "ddd2e6b0778f894d01733c82054ecc0e592a922a0718954f9e780c4330ff6163" }, "downloads": -1, "filename": "sockjs-0.7.1-py3-none-any.whl", "has_sig": false, "md5_digest": "e0961fc2a3b4676f12ed1221252980ca", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 22086, "upload_time": "2018-03-05T10:04:27", "url": "https://files.pythonhosted.org/packages/7f/d6/be2d768ad7a1231466e457effe2057a3fca7d7ca5fc011c9253c3e8826c3/sockjs-0.7.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5c0c391c5bcfaf3ad6b06f3bc9564de8", "sha256": "7a18bf8cba5188814858e2c1f2952490587164e51a1e9c0608cc6896d21b15c5" }, "downloads": -1, "filename": "sockjs-0.7.1.tar.gz", "has_sig": false, "md5_digest": "5c0c391c5bcfaf3ad6b06f3bc9564de8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32955, "upload_time": "2018-03-05T10:04:30", "url": "https://files.pythonhosted.org/packages/98/ec/35c1c40119c60e785a2104ce8152a485fb0f986187ac5f6fb8b2cea21be8/sockjs-0.7.1.tar.gz" } ], "0.8.0": [ { "comment_text": "", "digests": { "md5": "e68a66c2cfe910663176857d05027fd8", "sha256": "9989434777a871538aa8f2a0aaf894a2624e619035c2f4aecce87f11908fccfd" }, "downloads": -1, "filename": "sockjs-0.8.0-py3-none-any.whl", "has_sig": false, "md5_digest": "e68a66c2cfe910663176857d05027fd8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 19192, "upload_time": "2018-06-15T10:20:13", "url": "https://files.pythonhosted.org/packages/c7/9c/cc6e71987b66445908fd97158f67e58cd9c5e7c46f1ce28f98bcfb3343f3/sockjs-0.8.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e9ae321bc516f976820ed5b4314b0456", "sha256": "b553ec66638958fdf9f7391e418910d447eb3db56df86a4ce57822cf45b0bf60" }, "downloads": -1, "filename": "sockjs-0.8.0.tar.gz", "has_sig": false, "md5_digest": "e9ae321bc516f976820ed5b4314b0456", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33482, "upload_time": "2018-06-15T10:20:14", "url": "https://files.pythonhosted.org/packages/39/3e/78f9e8a6352e03cb66232949ef0f4f522a377cb2695901e6da0d76161266/sockjs-0.8.0.tar.gz" } ], "0.9.0": [ { "comment_text": "", "digests": { "md5": "dd023d9135f4ec68bcd48dbb7914fec6", "sha256": "b5112f9cb28fcc00c67a70f6d2be3841bc1794846d1804cc75f067c69191bba8" }, "downloads": -1, "filename": "sockjs-0.9.0-py3-none-any.whl", "has_sig": false, "md5_digest": "dd023d9135f4ec68bcd48dbb7914fec6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4.4", "size": 23270, "upload_time": "2018-10-11T16:50:08", "url": "https://files.pythonhosted.org/packages/3c/8c/0579104ae7b5b1935fc9c8dfc9cb90cd721a027069156205e3201cea24cb/sockjs-0.9.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1f3e79adb58c42fdcd7837833ec356fb", "sha256": "c3ea4f1cc9bbd5bf7192b1520f51764cfc3b6b54ed3e0c9d76bfb34ee539f21e" }, "downloads": -1, "filename": "sockjs-0.9.0.tar.gz", "has_sig": false, "md5_digest": "1f3e79adb58c42fdcd7837833ec356fb", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4.4", "size": 31632, "upload_time": "2018-10-11T16:50:09", "url": "https://files.pythonhosted.org/packages/82/e1/fc89ef4f85eb7a8c2651cd2959f851afb7f6666fd3bd7bd4e38aa41bcbfd/sockjs-0.9.0.tar.gz" } ], "0.9.1": [ { "comment_text": "", "digests": { "md5": "3faa5c00f5a92600d27f7b61575f88ba", "sha256": "0391b069f38ca686030c4f322e0a6e38e3ee54cb6aca991fa8f4dcb0a694ab4e" }, "downloads": -1, "filename": "sockjs-0.9.1-py3-none-any.whl", "has_sig": false, "md5_digest": "3faa5c00f5a92600d27f7b61575f88ba", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4.4", "size": 23252, "upload_time": "2018-12-04T14:20:38", "url": "https://files.pythonhosted.org/packages/58/f0/c2c88d28efa863c142e15656d9eb09fcd2c000d05d7ab37f81c86549a89c/sockjs-0.9.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f42066f98b90f191a799e608ce2255e1", "sha256": "5bd86cba705b73b7daaad2a081ca9b539d0d9f5eb163f1b1454644dfb8cb63e8" }, "downloads": -1, "filename": "sockjs-0.9.1.tar.gz", "has_sig": false, "md5_digest": "f42066f98b90f191a799e608ce2255e1", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4.4", "size": 31675, "upload_time": "2018-12-04T14:20:40", "url": "https://files.pythonhosted.org/packages/b4/45/ef5bec2591228b3428131ed76ddde3125ae0ab161a0f03274fc897d49ea0/sockjs-0.9.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "b654132f2d6f4a944d9ff844f5bb1aa7", "sha256": "e0fed79935269d0fb8c5b5200ac1e77caa2c44c4e201b7c1852eda47917ce817" }, "downloads": -1, "filename": "sockjs-0.10.0-py3-none-any.whl", "has_sig": false, "md5_digest": "b654132f2d6f4a944d9ff844f5bb1aa7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.3", "size": 23245, "upload_time": "2019-10-20T17:07:20", "url": "https://files.pythonhosted.org/packages/1d/67/ff524c6ae21b77c93d0e3dfa5112646f0bb2878eb94fbaba2f8bb4975a6e/sockjs-0.10.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "369417bd103f841f236a8623ea29353c", "sha256": "005a820387bb4611b59341eac091b05d4204050dd42e4ea6cfb83607e23e2f06" }, "downloads": -1, "filename": "sockjs-0.10.0.tar.gz", "has_sig": false, "md5_digest": "369417bd103f841f236a8623ea29353c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.3", "size": 31557, "upload_time": "2019-10-20T17:07:22", "url": "https://files.pythonhosted.org/packages/35/0e/6aa4f3283b064b04a0c7f3859c8c2c0b736c05cfb07853b6d94073c1bf63/sockjs-0.10.0.tar.gz" } ] }