{"id":22213990,"url":"https://github.com/xmlking/nifi-websocket","last_synced_at":"2025-07-27T12:31:58.642Z","repository":{"id":142313665,"uuid":"43229097","full_name":"xmlking/nifi-websocket","owner":"xmlking","description":"Apache NiFi WebSocket Listener ","archived":false,"fork":false,"pushed_at":"2015-10-18T10:23:02.000Z","size":232,"stargazers_count":10,"open_issues_count":0,"forks_count":7,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-05-01T20:22:18.732Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/xmlking.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-09-27T01:00:00.000Z","updated_at":"2023-08-29T02:26:33.000Z","dependencies_parsed_at":"2023-03-13T13:16:38.502Z","dependency_job_id":null,"html_url":"https://github.com/xmlking/nifi-websocket","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xmlking%2Fnifi-websocket","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xmlking%2Fnifi-websocket/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xmlking%2Fnifi-websocket/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xmlking%2Fnifi-websocket/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xmlking","download_url":"https://codeload.github.com/xmlking/nifi-websocket/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":227802821,"owners_count":17822113,"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-12-02T21:12:52.751Z","updated_at":"2024-12-02T21:12:53.354Z","avatar_url":"https://github.com/xmlking.png","language":"Java","readme":"# NiFi-WebSocket\n\n```python\nWork-in-Progress\n```\nThe goal of this project is to enable *WebSocket* interface to NiFi so that, external clients can send data to a flow as well as NiFi can stream results back to clients like browsers.\nTo simplify usage, [STOMP over WebSocket](http://jmesnil.net/stomp-websocket/doc/) protocol is used for client/server communication.   \n   \n1. **VertxService** is a NiFi service that opens **WebSocket** port and bridge the embedded [vertx's](http://vertx.io/) **EventBus**.  \n2. **GetEventBus** is a NiFi processor that subscribe to **EventBus's** address. all messages received on the address will be emitted into the flow.  \n3. **SendEventBus** is a NiFi processor that sends flowFile to **EventBus** address (point-to-point). only one recipient will receive flowFile.  \n4. **PublishEventBus** is a NiFi processor that publish flowFile to **EventBus** address (pub/sub). all subscribers on the address will receive flowFile. \n\n### Install\n1. Manual: Download [Apache NiFi](https://nifi.apache.org/download.html) binaries and unpack to a folder. \n2. On Mac: brew install nifi\n\n### Deploy\n```bash\n# Assume you unpacked nifi-0.3.0-bin.zip to /Developer/Applications/nifi\n./gradlew clean deploy -Pnifi_home=/Developer/Applications/nifi\n```\nOn Mac \n```bash\ngradle clean deploy -Pnifi_home=/usr/local/Cellar/nifi/0.3.0/libexec\n```\n\n### Run\n```bash\ncd /Developer/Applications/nifi\n./bin/nifi.sh  start\n./bin/nifi.sh  stop\n```\nOn Mac \n```bash\n# nifi start|stop|run|restart|status|dump|install\nnifi start \nnifi status  \nnifi stop \n# Working Directory: /usr/local/Cellar/nifi/0.3.0/libexec\n```\n### Test\n\n1. check if SockJS server is up: http://hostname:{port}/{eventbus}/info\n2. test evenBus via web page: [test.html](./test.html)\n3. test with flow: [WebSocketFlow.xml](./WebSocketFlow.xml)\n\n### TODO\n1. Try HazelcastClusterManager and Vertx.clusteredVertx to see if vertx clustering is possible with NiFi cluster. \n2. Support ability to publish multiple types of messages. i.e., primitives, string, buffers, JSON","funding_links":[],"categories":["Processors and Bundles"],"sub_categories":["Mailing List Best Of"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxmlking%2Fnifi-websocket","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxmlking%2Fnifi-websocket","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxmlking%2Fnifi-websocket/lists"}