{"id":13743715,"url":"https://github.com/OpenRTMFP/ArcusNode","last_synced_at":"2025-05-09T01:31:38.389Z","repository":{"id":1489673,"uuid":"1738105","full_name":"OpenRTMFP/ArcusNode","owner":"OpenRTMFP","description":"A RTMFP Rendevouz Service For Peer Assisted Networking With Adobe Flash on Node JS","archived":false,"fork":false,"pushed_at":"2017-07-08T01:07:49.000Z","size":274,"stargazers_count":175,"open_issues_count":10,"forks_count":36,"subscribers_count":23,"default_branch":"master","last_synced_at":"2024-11-15T14:35:48.576Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"ActionScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/OpenRTMFP.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2011-05-12T12:04:42.000Z","updated_at":"2024-11-10T13:50:56.000Z","dependencies_parsed_at":"2022-08-16T13:25:10.219Z","dependency_job_id":null,"html_url":"https://github.com/OpenRTMFP/ArcusNode","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenRTMFP%2FArcusNode","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenRTMFP%2FArcusNode/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenRTMFP%2FArcusNode/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenRTMFP%2FArcusNode/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OpenRTMFP","download_url":"https://codeload.github.com/OpenRTMFP/ArcusNode/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253174344,"owners_count":21865849,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-03T05:00:55.524Z","updated_at":"2025-05-09T01:31:33.356Z","avatar_url":"https://github.com/OpenRTMFP.png","language":"ActionScript","readme":"# ArcusNode\n#### A RTMFP Rendevouz Server For Peer Assisted Networking With Adobe Flash on NodeJS\nArcusNode aims to assist P2P networking with ease of extendability due to Javascript glue with NodeJS.\nArcusNode is a standalone RTMFP implementation.\nWe want to thank [Cumulus](http://github.com/OpenRTMFP/Cumulus), a standalone C++ implementation of the _RTMFP Protocol_ and much more.\n\nAuthor: arcusdev [arcus.node@gmail.com]  \nLicense: [GPL](http://www.gnu.org/licenses/) \n\n## Issues\nIf you have an **issue** with ArcusNode, please use the Github issue tracker!\n\n\n## Status\nArcusNode is still under heavy development and much work remains to be done. \nIt covers the following features already:\n\n* P2P Rendezvouz service\n* NetGroups\n* Remote Methods / Commands\n* Authentication\n* Plugins\n\n\n## Build \u0026 Installation\nArcusNode runs on Node v0.5.5 and higher. To use ArcusNode as a service, get it from [github](http://github.com/OpenRTMFP/ArcusNode) and run:\n\u003cpre\u003e\n$\u003e node-waf configure build\n$\u003e node service.js\n\u003c/pre\u003e\nYou then should see something like:\n\u003cpre\u003e\nStarting up ArcusNode RTMFP Service.\nCopyright (C) 2011 OpenRTMFP\nThis program comes with ABSOLUTELY NO WARRANTY.\nThis is free software, and you are welcome to redistribute it under certain conditions.\n(For usage help type \"node service.js -h\")\nArcusNode RTMFP Service running at 0.0.0.0:1935\n\u003c/pre\u003e\n1935 is the default port for RTMFP communication and you should now be able to connect to the server, create groups and get peers connected.\n\n#### Cygwin\nIf you run into problems building node on Cygwin, checkout _https://github.com/joyent/node/wiki/Building-node.js-on-Cygwin-(Windows)_.\nIf you consider using rebase, use both _./rebaseall_ and _./perlrebase_.\n\n## Usage\n### Basic\nAs you can see in the service.js, it is very easy to use ArcusNode in your own project.\n\u003cpre\u003e\nvar ArcusNode = require('./lib/arcus_node.js');\nvar arcusService = new ArcusNode();\narcusService.run();\n\u003c/pre\u003e\n\n### Customization\nArcusNode uses a mixture of Events and registered command callbacks. Events behave like known Node core events.\nCommands are called by a connected client through its NetConnection#call and can be registered on ArcusNode. \nCommands on the server behave almost exactly the same as described in the Flash Documentation,\nexcept that ArcusNode command callbacks always get the NetConnection which called the command as first argument, then the arguments from the Client. \n\n### Events\n\nAt this moment, ArcusNode emits the following events:\n\n* start\n* stop\n* handshake\n* connect\n* disconnect\n* command\n\nArcusNode uses the Node [EventEmitter](http://nodejs.org/docs/v0.5.3/api/events.html#events.EventEmitter) API\n\nExample for a connect event listener:\n\u003cpre\u003e\nvar ArcusNode = require('./lib/arcus_node.js');\nvar arcusService = new ArcusNode();\n\narcusService.on('connect', function(nc, obj){\n  console.log('Received a connection request for Connection ' + nc.id + ' with the properties', obj);\n});\n\narcusService.run();\n\u003c/pre\u003e\n\n\n### Commands\n[todo]\n\nExample for a command Client side:\n\u003cpre\u003e\nvar responder:Responder = new Responder(function(response) {\n  trace(response.what); //-\u003e 'ArcusNode rocks!'\n});\nconnection.call('sayWhat', responder, { name: 'ArcusNode' });\n\u003c/pre\u003e\n\nExample for a command Server side:\n\u003cpre\u003e\narcusService.onCommand('sayWhat', function(nc, obj){\n  return { what: obj.name + ' rocks!' };\n});\n\u003c/pre\u003e\n\n### ArcusNode Settings\n\nThe ArcusNode constructor takes a settings object with the following attributes:\n\n\u003cpre\u003e\n.port\n  Type: Integer\n  Default: 1935\n  The port that ArcusNode will listen for UDP connections.\n  \n.address\n  Type: String\n  Default: ''\n  ArcusNode can be run on a specific interface if wanted.\n  \n.logLevel\n  Type: String\n  Default: 'warn'\n  Can be one of ['fatal', 'error', 'warn', 'info', 'debug'].\n  \n.logFile:\n  Type: String, path\n  Default: ''\n  If a path for a log file is specified, all logging will be written to that file.\n\n.manageInterval \n  Type: Integer, seconds \n  default: 60 \n  The interval for the management cycle to do cleanup\n\n.connectionTimeout \n  Type: Integer, milliseconds \n  Default: 120000 \n  The timeout for a NetConnection. The connections is dropped after the NetConnection was unused for that amount of time. \n\n.groupTimeout\n  Type: Integer, milliseconds\n  Default: 360000\n  The timeout for a NetGroup. The group is dropped afer there was no interaction for that amount of time.\n\n.serverKeepalive\n  Type: Integer, milliseconds\n  Default: 60000\n  The timeout before the server sends a keepalive command to the client.\n  Should be less then connectionTimeout.\n\n.clientKeepalive\n  Type: Integer, milliseconds\n  Default: 60000\n  Will tell the client in what interval it should send keepalive messages\n\n.maxKeepalives\n  Type: Integer\n  Default: 3\n  How often to max keepalive the connection before dropping it.\n\u003c/pre\u003e\n\n## Roadmap\nTo reach version 0.1:\n\n* Add testing scripts and a Flash testing project\n* Complete AMF reading/writing (70%)\n\n## Development\nIf you have ideas, suggestions, bugfixes or just want to yell a little at the author,\nfeel free to contact arcus.node@gmail.com\n\n\n\u0026copy; Copyright 2011 OpenRTMFP\n","funding_links":[],"categories":["Networking"],"sub_categories":["P2P"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FOpenRTMFP%2FArcusNode","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FOpenRTMFP%2FArcusNode","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FOpenRTMFP%2FArcusNode/lists"}