1
Fork 0

Implement abort in the client->server direction.

This commit is contained in:
Juliusz Chroboczek 2020-12-25 18:25:55 +01:00
parent cc35931ad1
commit d5c7a13aae
2 changed files with 26 additions and 0 deletions

View File

@ -1144,6 +1144,15 @@ func handleClientMessage(c *webClient, m clientMessage) error {
if !found {
log.Printf("Deleting unknown up connection %v", m.Id)
}
case "abort":
found := delDownConn(c, m.Id)
if !found {
log.Printf("Attempted to abort unknown connection")
}
c.write(clientMessage{
Type: "close",
Id: m.Id,
});
case "ice":
if m.Candidate == nil {
return group.ProtocolError("null candidate")

View File

@ -911,6 +911,10 @@ function Stream(sc, id, pc, up) {
/**
* close closes a stream.
*
* For streams in the up direction, this may be called at any time. For
* streams in the down direction, this will be called automatically when
* the server signals that it is closing a stream.
*/
Stream.prototype.close = function() {
let c = this;
@ -941,6 +945,19 @@ Stream.prototype.close = function() {
c.sc = null;
};
/**
* abort requests that the server close a down stream.
*/
Stream.prototype.abort = function() {
let c = this;
if(c.up)
throw new Error("Abort called on an up stream");
c.sc.send({
type: 'abort',
id: c.id,
});
}
/**
* Called when we get a local ICE candidate. Don't call this.
*