external lib : support unsubscribe event and close event channel