io.go 588 B

1234567891011121314151617181920212223242526
  1. package remote_manager
  2. import (
  3. "github.com/langgenius/dify-plugin-daemon/internal/types/entities"
  4. "github.com/panjf2000/gnet/v2"
  5. )
  6. func (r *RemotePluginRuntime) Listen(session_id string) *entities.BytesIOListener {
  7. listener := entities.NewIOListener[[]byte]()
  8. listener.OnClose(func() {
  9. r.removeCallback(session_id)
  10. })
  11. r.addCallback(session_id, func(data []byte) {
  12. listener.Emit(data)
  13. })
  14. return listener
  15. }
  16. func (r *RemotePluginRuntime) Write(session_id string, data []byte) {
  17. r.conn.AsyncWrite(append(data, '\n'), func(c gnet.Conn, err error) error {
  18. return nil
  19. })
  20. }