Skip to main content

WebSocket

Struct WebSocket 

Source
pub struct WebSocket { /* private fields */ }

Implementations§

Source§

impl WebSocket

Source

pub fn sync_build() -> WebSocketBuilder<ScReq>

Source

pub fn open(url: impl AsRef<str>) -> Result<WebSocket, HlsError>

Examples found in repository?
examples/test_websocket.rs (line 7)
4fn main() {
5    let data = "CKVOEKfPvtzNMxiRTiABKhQKDXBpZ2Vvbl9zb3VyY2USA3dlYioUCg9QSUdFT05fQklaX1RZUEUSATIqiAIKC3BpZ2Vvbl9zaWduEvgBTUlHMkJBeTg5VUc1OEVBUUp6akNTWGtFZ1pNQ2Foc0x2RGtaQ0VxbTQ5amhHUGlzT0ZMWnJDQUxNdVZwSkpsdUhrdUd6UXNmNDlXd0x5cXZncDJLam1pdVdtZlMxV2pXM0ZURmExMk1GV0poajhsNmRhdk5yb0haSzdmUDh3ZmdQRnBNWlRFaUhzaG9FZlprOWVwSmpGQlE3ck9STkFwVzgrb2tJZVExWnF5L1R1Rkpta2ZLNFJpbmtvc2o4SThKUDllQkRPbk1oNzJ5N0M3V0FGRW9XWkRVa2llVmUvNEVFQ0lBb2RWaE51UXd2QWs4N3UxU1FBTT06AnBiQpIICMgBEKVOGgwxLjAuOS1iZXRhLjkiNjhsdVRvRDJKU1J5SjM4WXBZZ0x0akdoMnFmRGRhTTNZamc4NDdRMmdKN2IxT0ZPM0d1VXJNVCgDMAM6FDIxYmFhNTM6ZmVhdC91aWRfc2VjQg7CDAsIxb6BnZqXkwMQMkoOMjkwMzQ0NjU0NjExOTVaA3dlYnoUCg1waWdlb25fc291cmNlEgN3ZWJ6FAoPUElHRU9OX0JJWl9UWVBFEgEyeogCCgtwaWdlb25fc2lnbhL4AU1JRzJCQXk4OVVHNThFQVFKempDU1hrRWdaTUNhaHNMdkRrWkNFcW00OWpoR1Bpc09GTFpyQ0FMTXVWcEpKbHVIa3VHelFzZjQ5V3dMeXF2Z3AyS2ptaXVXbWZTMVdqVzNGVEZhMTJNRldKaGo4bDZkYXZOcm9IWks3ZlA4d2ZnUEZwTVpURWlIc2hvRWZaazllcEpqRkJRN3JPUk5BcFc4K29rSWVRMVpxeS9UdUZKbWtmSzRSaW5rb3NqOEk4SlA5ZUJET25NaDcyeTdDN1dBRkVvV1pEVWtpZVZlLzRFRUNJQW9kVmhOdVF3dkFrODd1MVNRQU09ehMKC3Nlc3Npb25fYWlkEgQxMzgzeh0KC3Nlc3Npb25fZGlkEg4yOTAzNDQ2NTQ2MTE5NXoOCghhcHBfbmFtZRICaW16FQoPcHJpb3JpdHlfcmVnaW9uEgJjbnqLAQoKdXNlcl9hZ2VudBJ9TW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzE0My4wLjAuMCBTYWZhcmkvNTM3LjM2IEVkZy8xNDMuMC4wLjB6FgoOY29va2llX2VuYWJsZWQSBHRydWV6GQoQYnJvd3Nlcl9sYW5ndWFnZRIFemgtQ056GQoQYnJvd3Nlcl9wbGF0Zm9ybRIFV2luMzJ6FwoMYnJvd3Nlcl9uYW1lEgdNb3ppbGxheogBCg9icm93c2VyX3ZlcnNpb24SdTUuMCAoV2luZG93cyBOVCAxMC4wOyBXaW42NDsgeDY0KSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvMTQzLjAuMC4wIFNhZmFyaS81MzcuMzYgRWRnLzE0My4wLjAuMHoWCg5icm93c2VyX29ubGluZRIEdHJ1ZXoUCgxzY3JlZW5fd2lkdGgSBDE5MjB6FQoNc2NyZWVuX2hlaWdodBIEMTIwMHoLCgdyZWZlcmVyEgB6HgoNdGltZXpvbmVfbmFtZRINQXNpYS9TaGFuZ2hhaZABAg==";
6    let frame = WsFrame::new_binary(true, &base64::b64decode(data).unwrap());
7    let mut ws = WebSocket::open("wss://ws.fxg.jinritemai.com/ws/v2?token=7ZCaKBSdFb3OzbSnHWG2KX3bnv16kw2mjuYixshsxcS50olQrvXWLz&aid=1383&fpid=92&device_id=7533162211695730215&access_key=8e5935fbd8511c652dcc322bb5031654&device_platform=web&version_code=10000&pigeon_source=web&PIGEON_BIZ_TYPE=2&pigeon_sign=MIHABAzDHrRlfCURjvLPmq0EgZ2Vh50r73ZYkBUIBzqiaUSeXDdoMsiGpzSNxRZsCi4leTcz%2F7%2BST0v3RBTGjstJZd2GEdRr7PBbO0uVDXSZc5cIPoDxTakAUmBwZ92z18C%2BNC%2FtpRKRGoABoDXyi%2BQ0OHZ7OLNlS6726zBE3G4%2BJ%2FGe73qHizuj%2FyyCh%2BUe%2BmnKiFIk6RB2ku6rErByB7CxNkwV0BYqGTqyoS75rWzkBBDbDZsfQ08MrqNmqC6AmPzK").unwrap();
8    ws.write_frame(frame).unwrap();
9    loop {
10        let frame = ws.read_frame().unwrap();
11        println!("{}", String::from_utf8_lossy(frame.payload().as_bytes()));
12    }
13
14}
Source

pub fn open_raw( url: impl AsRef<str>, context: impl AsRef<[u8]>, ) -> Result<WebSocket, HlsError>

Source

pub fn write_frame(&mut self, frame: WsFrame) -> Result<(), HlsError>

Examples found in repository?
examples/test_websocket.rs (line 8)
4fn main() {
5    let data = "CKVOEKfPvtzNMxiRTiABKhQKDXBpZ2Vvbl9zb3VyY2USA3dlYioUCg9QSUdFT05fQklaX1RZUEUSATIqiAIKC3BpZ2Vvbl9zaWduEvgBTUlHMkJBeTg5VUc1OEVBUUp6akNTWGtFZ1pNQ2Foc0x2RGtaQ0VxbTQ5amhHUGlzT0ZMWnJDQUxNdVZwSkpsdUhrdUd6UXNmNDlXd0x5cXZncDJLam1pdVdtZlMxV2pXM0ZURmExMk1GV0poajhsNmRhdk5yb0haSzdmUDh3ZmdQRnBNWlRFaUhzaG9FZlprOWVwSmpGQlE3ck9STkFwVzgrb2tJZVExWnF5L1R1Rkpta2ZLNFJpbmtvc2o4SThKUDllQkRPbk1oNzJ5N0M3V0FGRW9XWkRVa2llVmUvNEVFQ0lBb2RWaE51UXd2QWs4N3UxU1FBTT06AnBiQpIICMgBEKVOGgwxLjAuOS1iZXRhLjkiNjhsdVRvRDJKU1J5SjM4WXBZZ0x0akdoMnFmRGRhTTNZamc4NDdRMmdKN2IxT0ZPM0d1VXJNVCgDMAM6FDIxYmFhNTM6ZmVhdC91aWRfc2VjQg7CDAsIxb6BnZqXkwMQMkoOMjkwMzQ0NjU0NjExOTVaA3dlYnoUCg1waWdlb25fc291cmNlEgN3ZWJ6FAoPUElHRU9OX0JJWl9UWVBFEgEyeogCCgtwaWdlb25fc2lnbhL4AU1JRzJCQXk4OVVHNThFQVFKempDU1hrRWdaTUNhaHNMdkRrWkNFcW00OWpoR1Bpc09GTFpyQ0FMTXVWcEpKbHVIa3VHelFzZjQ5V3dMeXF2Z3AyS2ptaXVXbWZTMVdqVzNGVEZhMTJNRldKaGo4bDZkYXZOcm9IWks3ZlA4d2ZnUEZwTVpURWlIc2hvRWZaazllcEpqRkJRN3JPUk5BcFc4K29rSWVRMVpxeS9UdUZKbWtmSzRSaW5rb3NqOEk4SlA5ZUJET25NaDcyeTdDN1dBRkVvV1pEVWtpZVZlLzRFRUNJQW9kVmhOdVF3dkFrODd1MVNRQU09ehMKC3Nlc3Npb25fYWlkEgQxMzgzeh0KC3Nlc3Npb25fZGlkEg4yOTAzNDQ2NTQ2MTE5NXoOCghhcHBfbmFtZRICaW16FQoPcHJpb3JpdHlfcmVnaW9uEgJjbnqLAQoKdXNlcl9hZ2VudBJ9TW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzE0My4wLjAuMCBTYWZhcmkvNTM3LjM2IEVkZy8xNDMuMC4wLjB6FgoOY29va2llX2VuYWJsZWQSBHRydWV6GQoQYnJvd3Nlcl9sYW5ndWFnZRIFemgtQ056GQoQYnJvd3Nlcl9wbGF0Zm9ybRIFV2luMzJ6FwoMYnJvd3Nlcl9uYW1lEgdNb3ppbGxheogBCg9icm93c2VyX3ZlcnNpb24SdTUuMCAoV2luZG93cyBOVCAxMC4wOyBXaW42NDsgeDY0KSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvMTQzLjAuMC4wIFNhZmFyaS81MzcuMzYgRWRnLzE0My4wLjAuMHoWCg5icm93c2VyX29ubGluZRIEdHJ1ZXoUCgxzY3JlZW5fd2lkdGgSBDE5MjB6FQoNc2NyZWVuX2hlaWdodBIEMTIwMHoLCgdyZWZlcmVyEgB6HgoNdGltZXpvbmVfbmFtZRINQXNpYS9TaGFuZ2hhaZABAg==";
6    let frame = WsFrame::new_binary(true, &base64::b64decode(data).unwrap());
7    let mut ws = WebSocket::open("wss://ws.fxg.jinritemai.com/ws/v2?token=7ZCaKBSdFb3OzbSnHWG2KX3bnv16kw2mjuYixshsxcS50olQrvXWLz&aid=1383&fpid=92&device_id=7533162211695730215&access_key=8e5935fbd8511c652dcc322bb5031654&device_platform=web&version_code=10000&pigeon_source=web&PIGEON_BIZ_TYPE=2&pigeon_sign=MIHABAzDHrRlfCURjvLPmq0EgZ2Vh50r73ZYkBUIBzqiaUSeXDdoMsiGpzSNxRZsCi4leTcz%2F7%2BST0v3RBTGjstJZd2GEdRr7PBbO0uVDXSZc5cIPoDxTakAUmBwZ92z18C%2BNC%2FtpRKRGoABoDXyi%2BQ0OHZ7OLNlS6726zBE3G4%2BJ%2FGe73qHizuj%2FyyCh%2BUe%2BmnKiFIk6RB2ku6rErByB7CxNkwV0BYqGTqyoS75rWzkBBDbDZsfQ08MrqNmqC6AmPzK").unwrap();
8    ws.write_frame(frame).unwrap();
9    loop {
10        let frame = ws.read_frame().unwrap();
11        println!("{}", String::from_utf8_lossy(frame.payload().as_bytes()));
12    }
13
14}
Source

pub fn read_frame(&mut self) -> Result<WsFrame, HlsError>

Examples found in repository?
examples/test_websocket.rs (line 10)
4fn main() {
5    let data = "CKVOEKfPvtzNMxiRTiABKhQKDXBpZ2Vvbl9zb3VyY2USA3dlYioUCg9QSUdFT05fQklaX1RZUEUSATIqiAIKC3BpZ2Vvbl9zaWduEvgBTUlHMkJBeTg5VUc1OEVBUUp6akNTWGtFZ1pNQ2Foc0x2RGtaQ0VxbTQ5amhHUGlzT0ZMWnJDQUxNdVZwSkpsdUhrdUd6UXNmNDlXd0x5cXZncDJLam1pdVdtZlMxV2pXM0ZURmExMk1GV0poajhsNmRhdk5yb0haSzdmUDh3ZmdQRnBNWlRFaUhzaG9FZlprOWVwSmpGQlE3ck9STkFwVzgrb2tJZVExWnF5L1R1Rkpta2ZLNFJpbmtvc2o4SThKUDllQkRPbk1oNzJ5N0M3V0FGRW9XWkRVa2llVmUvNEVFQ0lBb2RWaE51UXd2QWs4N3UxU1FBTT06AnBiQpIICMgBEKVOGgwxLjAuOS1iZXRhLjkiNjhsdVRvRDJKU1J5SjM4WXBZZ0x0akdoMnFmRGRhTTNZamc4NDdRMmdKN2IxT0ZPM0d1VXJNVCgDMAM6FDIxYmFhNTM6ZmVhdC91aWRfc2VjQg7CDAsIxb6BnZqXkwMQMkoOMjkwMzQ0NjU0NjExOTVaA3dlYnoUCg1waWdlb25fc291cmNlEgN3ZWJ6FAoPUElHRU9OX0JJWl9UWVBFEgEyeogCCgtwaWdlb25fc2lnbhL4AU1JRzJCQXk4OVVHNThFQVFKempDU1hrRWdaTUNhaHNMdkRrWkNFcW00OWpoR1Bpc09GTFpyQ0FMTXVWcEpKbHVIa3VHelFzZjQ5V3dMeXF2Z3AyS2ptaXVXbWZTMVdqVzNGVEZhMTJNRldKaGo4bDZkYXZOcm9IWks3ZlA4d2ZnUEZwTVpURWlIc2hvRWZaazllcEpqRkJRN3JPUk5BcFc4K29rSWVRMVpxeS9UdUZKbWtmSzRSaW5rb3NqOEk4SlA5ZUJET25NaDcyeTdDN1dBRkVvV1pEVWtpZVZlLzRFRUNJQW9kVmhOdVF3dkFrODd1MVNRQU09ehMKC3Nlc3Npb25fYWlkEgQxMzgzeh0KC3Nlc3Npb25fZGlkEg4yOTAzNDQ2NTQ2MTE5NXoOCghhcHBfbmFtZRICaW16FQoPcHJpb3JpdHlfcmVnaW9uEgJjbnqLAQoKdXNlcl9hZ2VudBJ9TW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzE0My4wLjAuMCBTYWZhcmkvNTM3LjM2IEVkZy8xNDMuMC4wLjB6FgoOY29va2llX2VuYWJsZWQSBHRydWV6GQoQYnJvd3Nlcl9sYW5ndWFnZRIFemgtQ056GQoQYnJvd3Nlcl9wbGF0Zm9ybRIFV2luMzJ6FwoMYnJvd3Nlcl9uYW1lEgdNb3ppbGxheogBCg9icm93c2VyX3ZlcnNpb24SdTUuMCAoV2luZG93cyBOVCAxMC4wOyBXaW42NDsgeDY0KSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvMTQzLjAuMC4wIFNhZmFyaS81MzcuMzYgRWRnLzE0My4wLjAuMHoWCg5icm93c2VyX29ubGluZRIEdHJ1ZXoUCgxzY3JlZW5fd2lkdGgSBDE5MjB6FQoNc2NyZWVuX2hlaWdodBIEMTIwMHoLCgdyZWZlcmVyEgB6HgoNdGltZXpvbmVfbmFtZRINQXNpYS9TaGFuZ2hhaZABAg==";
6    let frame = WsFrame::new_binary(true, &base64::b64decode(data).unwrap());
7    let mut ws = WebSocket::open("wss://ws.fxg.jinritemai.com/ws/v2?token=7ZCaKBSdFb3OzbSnHWG2KX3bnv16kw2mjuYixshsxcS50olQrvXWLz&aid=1383&fpid=92&device_id=7533162211695730215&access_key=8e5935fbd8511c652dcc322bb5031654&device_platform=web&version_code=10000&pigeon_source=web&PIGEON_BIZ_TYPE=2&pigeon_sign=MIHABAzDHrRlfCURjvLPmq0EgZ2Vh50r73ZYkBUIBzqiaUSeXDdoMsiGpzSNxRZsCi4leTcz%2F7%2BST0v3RBTGjstJZd2GEdRr7PBbO0uVDXSZc5cIPoDxTakAUmBwZ92z18C%2BNC%2FtpRKRGoABoDXyi%2BQ0OHZ7OLNlS6726zBE3G4%2BJ%2FGe73qHizuj%2FyyCh%2BUe%2BmnKiFIk6RB2ku6rErByB7CxNkwV0BYqGTqyoS75rWzkBBDbDZsfQ08MrqNmqC6AmPzK").unwrap();
8    ws.write_frame(frame).unwrap();
9    loop {
10        let frame = ws.read_frame().unwrap();
11        println!("{}", String::from_utf8_lossy(frame.payload().as_bytes()));
12    }
13
14}
Source

pub fn shutdown(self) -> Result<(), HlsError>

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.