io.go 533 B

123456789101112131415161718192021
  1. package local_manager
  2. import (
  3. "github.com/langgenius/dify-plugin-daemon/internal/types/entities"
  4. )
  5. func (r *LocalPluginRuntime) Listen(session_id string) *entities.BytesIOListener {
  6. listener := entities.NewIOListener[[]byte]()
  7. listener.OnClose(func() {
  8. RemoveStdioListener(r.io_identity, session_id)
  9. })
  10. OnStdioEvent(r.io_identity, session_id, func(b []byte) {
  11. listener.Emit(b)
  12. })
  13. return listener
  14. }
  15. func (r *LocalPluginRuntime) Write(session_id string, data []byte) {
  16. WriteToStdio(r.io_identity, append(data, '\n'))
  17. }