summaryrefslogtreecommitdiff
path: root/ext/websocket/lib.rs
diff options
context:
space:
mode:
Diffstat (limited to 'ext/websocket/lib.rs')
-rw-r--r--ext/websocket/lib.rs28
1 files changed, 17 insertions, 11 deletions
diff --git a/ext/websocket/lib.rs b/ext/websocket/lib.rs
index 5ac1f0197..81f358dd2 100644
--- a/ext/websocket/lib.rs
+++ b/ext/websocket/lib.rs
@@ -365,7 +365,7 @@ impl ServerWebSocket {
pub async fn write_frame(
self: &Rc<Self>,
lock: AsyncMutFuture<()>,
- frame: Frame,
+ frame: Frame<'_>,
) -> Result<(), AnyError> {
lock.await;
@@ -401,7 +401,6 @@ pub fn ws_create_server_stream(
ws.set_writev(*USE_WRITEV);
ws.set_auto_close(true);
ws.set_auto_pong(true);
-
let rid = state.resource_table.add(ServerWebSocket::new(ws));
Ok(rid)
}
@@ -415,7 +414,7 @@ pub fn op_ws_send_binary(state: &mut OpState, rid: ResourceId, data: &[u8]) {
let lock = resource.reserve_lock();
deno_core::task::spawn(async move {
if let Err(err) = resource
- .write_frame(lock, Frame::new(true, OpCode::Binary, None, data))
+ .write_frame(lock, Frame::new(true, OpCode::Binary, None, data.into()))
.await
{
resource.set_error(Some(err.to_string()));
@@ -435,7 +434,7 @@ pub fn op_ws_send_text(state: &mut OpState, rid: ResourceId, data: String) {
if let Err(err) = resource
.write_frame(
lock,
- Frame::new(true, OpCode::Text, None, data.into_bytes()),
+ Frame::new(true, OpCode::Text, None, data.into_bytes().into()),
)
.await
{
@@ -460,7 +459,7 @@ pub async fn op_ws_send_binary_async(
let data = data.to_vec();
let lock = resource.reserve_lock();
resource
- .write_frame(lock, Frame::new(true, OpCode::Binary, None, data))
+ .write_frame(lock, Frame::new(true, OpCode::Binary, None, data.into()))
.await
}
@@ -479,11 +478,13 @@ pub async fn op_ws_send_text_async(
resource
.write_frame(
lock,
- Frame::new(true, OpCode::Text, None, data.into_bytes()),
+ Frame::new(true, OpCode::Text, None, data.into_bytes().into()),
)
.await
}
+const EMPTY_PAYLOAD: &[u8] = &[];
+
#[op(fast)]
pub fn op_ws_get_buffered_amount(state: &mut OpState, rid: ResourceId) -> u32 {
state
@@ -504,7 +505,9 @@ pub async fn op_ws_send_pong(
.resource_table
.get::<ServerWebSocket>(rid)?;
let lock = resource.reserve_lock();
- resource.write_frame(lock, Frame::pong(vec![])).await
+ resource
+ .write_frame(lock, Frame::pong(EMPTY_PAYLOAD.into()))
+ .await
}
#[op]
@@ -518,7 +521,10 @@ pub async fn op_ws_send_ping(
.get::<ServerWebSocket>(rid)?;
let lock = resource.reserve_lock();
resource
- .write_frame(lock, Frame::new(true, OpCode::Ping, None, vec![]))
+ .write_frame(
+ lock,
+ Frame::new(true, OpCode::Ping, None, EMPTY_PAYLOAD.into()),
+ )
.await
}
@@ -535,7 +541,7 @@ pub async fn op_ws_close(
.get::<ServerWebSocket>(rid)?;
let frame = reason
.map(|reason| Frame::close(code.unwrap_or(1005), reason.as_bytes()))
- .unwrap_or_else(|| Frame::close_raw(vec![]));
+ .unwrap_or_else(|| Frame::close_raw(vec![].into()));
resource.closed.set(true);
let lock = resource.reserve_lock();
@@ -602,7 +608,7 @@ pub async fn op_ws_next_event(
};
break match val.opcode {
- OpCode::Text => match String::from_utf8(val.payload) {
+ OpCode::Text => match String::from_utf8(val.payload.to_vec()) {
Ok(s) => {
resource.string.set(Some(s));
MessageKind::Text as u16
@@ -613,7 +619,7 @@ pub async fn op_ws_next_event(
}
},
OpCode::Binary => {
- resource.buffer.set(Some(val.payload));
+ resource.buffer.set(Some(val.payload.to_vec()));
MessageKind::Binary as u16
}
OpCode::Close => {