Unsubscribe removes a subscriber and closes its channel.
(sessionID, subID string)
| 315 | |
| 316 | // Unsubscribe removes a subscriber and closes its channel. |
| 317 | func (m *Manager) Unsubscribe(sessionID, subID string) { |
| 318 | sess := m.Get(sessionID) |
| 319 | if sess == nil { |
| 320 | return |
| 321 | } |
| 322 | sess.mu.Lock() |
| 323 | defer sess.mu.Unlock() |
| 324 | if ch, ok := sess.subscribers[subID]; ok { |
| 325 | close(ch) |
| 326 | delete(sess.subscribers, subID) |
| 327 | } |
| 328 | } |
| 329 | |
| 330 | // PublishResult sends a result to all subscribers of a session. |
| 331 | func (m *Manager) PublishResult(sessionID string, result *CommandResult) { |