x.websocket: add header to client (#9517)
parent
3ced970b17
commit
9b9ef5fe1b
|
@ -22,7 +22,12 @@ fn (mut ws Client) handshake() ? {
|
||||||
sb.write_string('\r\nUpgrade: websocket\r\nConnection: Upgrade\r\n')
|
sb.write_string('\r\nUpgrade: websocket\r\nConnection: Upgrade\r\n')
|
||||||
sb.write_string('Sec-WebSocket-Key: ')
|
sb.write_string('Sec-WebSocket-Key: ')
|
||||||
sb.write_string(seckey)
|
sb.write_string(seckey)
|
||||||
sb.write_string('\r\nSec-WebSocket-Version: 13\r\n\r\n')
|
sb.write_string('\r\nSec-WebSocket-Version: 13')
|
||||||
|
for key in ws.header.keys() {
|
||||||
|
val := ws.header.values_str(key).join(',')
|
||||||
|
sb.write_string('\r\n$key:$val')
|
||||||
|
}
|
||||||
|
sb.write_string('\r\n\r\n')
|
||||||
handshake := sb.str()
|
handshake := sb.str()
|
||||||
defer {
|
defer {
|
||||||
unsafe { handshake.free() }
|
unsafe { handshake.free() }
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
module websocket
|
module websocket
|
||||||
|
|
||||||
import net
|
import net
|
||||||
|
import net.http
|
||||||
import x.openssl
|
import x.openssl
|
||||||
import net.urllib
|
import net.urllib
|
||||||
import time
|
import time
|
||||||
|
@ -30,6 +31,7 @@ pub:
|
||||||
uri Uri // uri of current connection
|
uri Uri // uri of current connection
|
||||||
id string // unique id of client
|
id string // unique id of client
|
||||||
pub mut:
|
pub mut:
|
||||||
|
header http.Header // headers that will be passed when connecting
|
||||||
conn &net.TcpConn // underlying TCP socket connection
|
conn &net.TcpConn // underlying TCP socket connection
|
||||||
nonce_size int = 16 // size of nounce used for masking
|
nonce_size int = 16 // size of nounce used for masking
|
||||||
panic_on_callback bool // set to true of callbacks can panic
|
panic_on_callback bool // set to true of callbacks can panic
|
||||||
|
@ -85,6 +87,7 @@ pub fn new_client(address string) ?&Client {
|
||||||
uri: uri
|
uri: uri
|
||||||
state: .closed
|
state: .closed
|
||||||
id: rand.uuid_v4()
|
id: rand.uuid_v4()
|
||||||
|
header: http.new_header()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -486,5 +489,6 @@ pub fn (c &Client) free() {
|
||||||
c.error_callbacks.free()
|
c.error_callbacks.free()
|
||||||
c.open_callbacks.free()
|
c.open_callbacks.free()
|
||||||
c.close_callbacks.free()
|
c.close_callbacks.free()
|
||||||
|
c.header.free()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue