Server APIs v2
  • Server APIs overview
  • Accessing Server APIs
  • Room signaling
  • Stream mixing
  • Streaming moderation
  • Streaming control
  • CDN recording
  • Server callbacks
  • Return codes
  • API testing
  • FAQ
  • Documentation
  • Server APIs v2
  • Server callbacks
  • Callback on stream closed

Callback on stream closed

Last updated:2023-04-17 18:27

1 Description

With the related callback setup in place, the ZEGOCLOUD server will send an event notification to the pre-configured server callback URL when your application client stops publishing a stream to the ZEGOCLOUD server. You can use this callback to maintain a list of live streams on your application server.

2 Callback request

  • Request method: POST/JSON or POST/FORM

    • The default data format for requesting data is POST/JSON format. If you need to use the POST/FORM format, please contact ZEGOCLOUD technical support.
    • The form values in POST/FORM format need to be decoded with urldecode.
  • Request endpoint: The corresponding callback endpoint in the ZEGOCLOUD Admin Console. (Click here to learn how to config the callback endpoint)

  • Transmission protocol: HTTPS/HTTP (HTTPS is recommended).

  • 3 Request parameters

    Parameter Type Description
    stream_sid
    String
    The stream's server-side ID, the unique ID of the stream generated by the ZEGO server.
    type
    String
    Reason of stream close-down.
    • 0: Stream closed normally via API call on the client or server side.
    • A non-zero value indicates an abnormal stream close-down.
      • 1: Stream closed because the heartbeat timed out.
      • 2: Stream closed because the same user logged in to a new session.
      • 3: Stream closed because the user is kicked out of the room.
      • 4: Stream closed because the TCP connection is lost. (the callback time is configurable)
      • 5: Stream closed because the room is deleted.
    channel_id
    String
    Channel ID, with a maximum length of 127 bytes. Same as the RoomID on the client side.
    stream_alias
    String
    Stream name, with a maximum length of 255 bytes. Same as the StreamID on the client side.
    timestamp
    String
    The server's current time, a Unix timestamp.
    nonce
    String
    A random number.
    signature
    String
    The signature for request authentication. For more details about the request signature, see Authenticating server-to-server callbacks.
    appid
    String
    AppId。
    event
    String
    Event name. For this callback, the event name is "stream_close".
    stream_id
    String
    Stream ID, same as the parameter stream_alias.
    stream_seq
    String
    The sequence number of server stream list updates, with an increment of 1 for each update.
    room_id
    String
    Room ID, with a maximum length of 127 bytes. Same as the parameter channel_id.
    user_id
    String
    User ID, with a maximum length of 255 bytes. Same as the parameter publish_id.
    user_name
    String
    User name, with a maximum length of 255 bytes. Same as the parameter publish_name.

    4 Sample request

    Array
    (
        [stream_sid] => s-115205137699740000000000104
        [channel_id] => 0xb-0x1
        [type] => 0
        [stream_alias] => aaaa
        [timestamp] => 1481597358
        [nonce] => 158273
        [signature] => signature
        [appid] => 1
        [event] => stream_close
    )

    5 Sample response

    1

    A response "1" means that the request has completed successfully. Other responses indicate a failed request.

    6 Retry mechanism

    If the ZEGOCLOUD server does not receive a response, it will retry with intervals of 2s, 4s, 8s, 16s, and 32s respectively. If the retry still fails after an interval of 32s, it will no longer retry.

    Page Directory