Package Exports
- appwrite-webhook-restreamer
- appwrite-webhook-restreamer/index.mjs
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (appwrite-webhook-restreamer) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
appwrite-webhook-restreamer
Appwrite Server SDK does not support realtime through WebSocket. Due to the limitations of automatic SDK generator, looks like It would not ever support It. I am solved that problem by using SockJS
Contribute
[!IMPORTANT] There is another project named react-declarative build especially for AppWrite Realtime development. ⭐Star and 💻Fork It on github will be appreciated
Setup
- Start this microservice by using the next command
npx -y appwrite-webhook-restreamer- Setup webhook in the Appwrite instance settings. Use the next POST URL:
http://127.0.0.1:9999/emit

- Listen for events by using any SockJS Client with the next url:
http://127.0.0.1:9999/listen. The following code might be useful
import Socket from "sockjs-client";
import { Subject, singleshot } from "react-declarative";
...
export class RealtimeService {
private readonly _sockjsSubject = new Subject<object>();
constructor() {
makeObservable(this, {});
}
private _init = singleshot(() => {
new Socket("http://127.0.0.1:9999/listen").onmessage = (msg) => {
const chunk = JSON.parse(msg.data);
const data = {
payload: chunk.payload,
channels: [],
events: chunk.events.split(","),
timestamp: chusnk.timestamp,
};
this._sockjsSubject.next(data);
};
});
subscribe = <T extends unknown>(
channel: string,
callback: (payload: RealtimeResponseEvent<T>) => void,
) => {
this._init();
return this._sockjsSubject.subscribe((payload) => {
if (payload.events.some((event: string) => event.includes(channel))) {
callback(payload);
}
});
};
}CLI
The first command line argument is always a port. The second is the disallowWs flag (optional)
appwrite-webhook-restream 9999 [--disallowWs]