{"id":25522280,"url":"https://github.com/launchscout/angular2-phoenix-channels","last_synced_at":"2025-04-11T01:32:22.950Z","repository":{"id":57179687,"uuid":"46676429","full_name":"launchscout/angular2-phoenix-channels","owner":"launchscout","description":"Injectable observable wrapper for Phoenix Channels","archived":false,"fork":false,"pushed_at":"2015-11-22T21:36:23.000Z","size":6,"stargazers_count":9,"open_issues_count":0,"forks_count":2,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-03-24T22:41:31.836Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/launchscout.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":"2015-11-22T19:35:51.000Z","updated_at":"2016-07-28T02:08:39.000Z","dependencies_parsed_at":"2022-09-14T03:21:02.651Z","dependency_job_id":null,"html_url":"https://github.com/launchscout/angular2-phoenix-channels","commit_stats":null,"previous_names":["gaslight/angular2-phoenix-channels"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/launchscout%2Fangular2-phoenix-channels","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/launchscout%2Fangular2-phoenix-channels/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/launchscout%2Fangular2-phoenix-channels/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/launchscout%2Fangular2-phoenix-channels/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/launchscout","download_url":"https://codeload.github.com/launchscout/angular2-phoenix-channels/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248325107,"owners_count":21084869,"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":"2025-02-19T18:19:13.748Z","updated_at":"2025-04-11T01:32:22.932Z","avatar_url":"https://github.com/launchscout.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# angular2-phoenix-channels\n\nA package that lets you use Phoenix channels as Angular 2 Observables.\n\n## Configuration\n\nWhen you bootstrap your app, you'll need to setup a provider and pass\nin your websocket uri.\n\n```javascript\nlet phoenixChannelsProvider = provide(PhoenixChannels, { useFactory: () =\u003e {\n  return new PhoenixChannels(\"ws://localhost:4000/socket\");\n} });\n\nbootstrap(MyAppComponent, [phoenixChannelsProvider]);\n```\n\n## Usage\n\nHave your service injected with PhoenixChannels\n\n```typescript\n@Injectable()\nclass CandidateService {\n  constructor(http: Http, phoenixChannels: PhoenixChannels) {\n  ...\n  }\n}\n```\n\nJoin a channel.\n\n```javascript\nlet allCandidatesChannel = this.phoenixChannels.channel(\"candidates:all\");\nallCandidatesChannel.join();\n```\n\nObserve messages. `observeMessage` returns an observable can call subscribe\nor any other observable operators on.\n```javascript\nlet phoenixObservable = this.allCandidatesChannel.observeMessage(\"change\").map( (resp) =\u003e resp.candidates );\n```\n\nYou can merge this observable with other observables.\n\n```javascript\ngetCandidates() {\n  let httpObservable = this.http.get('http://localhost:4000/candidates').map( (resp) =\u003e resp.json());\n  let phoenixObservable = this.allCandidatesChannel.observeMessage(\"change\").map( (resp) =\u003e resp.candidates );\n  return Observable.merge(httpObservable, phoenixObservable);\n}\n```\n\n## Examples\n\nAngular 2 app: http://github.com/gaslight/campg-angular2.git\n\nPhoenix server for above app: http://github.com/superchris/hirem_server.git\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flaunchscout%2Fangular2-phoenix-channels","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flaunchscout%2Fangular2-phoenix-channels","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flaunchscout%2Fangular2-phoenix-channels/lists"}