소켓 3

소켓통신 첫 4byte 길이 구하기 (비트연산)

List buffer 에는 연결된 소켓에서 데이터를 받아옵니다. 아래 코드의 buffer 는 길이를 얻기위해 첫 4byte 만 추출 한 것입니다. 여기서 buffer는 바이트 배열로, 각각의 원소는 8비트(1byte) 크기의 바이트입니다. 이렇게 바이트 배열로 표현된 데이터를 조합하여 하나의 정수로 만들기 위해 비트 연산을 사용합니다. 코드 List buffer = [0x00, 0x00, 0x07, 0x04]; // 예시 데이터 int length = (buffer[0]

[flutter] 소켓 통신 응답받을때 데이터 짤리는 문제

flutter 에서 소켓 접속후 응받받을때 데이터가 짤리는경우가 발생한다. 수정전 Future _listenToSocket() async { _socket.listen( (List data) async { // 데이터 수신 처리 _hexString = HEX.encode(data); print('flutter 에서 데이터 수신'); print(_hexString); // 비동기 작업을 수행하고자 하는 경우, await 키워드로 Future를 기다릴 수 있습니다. await someAsyncTask(); // 비동기 작업 후 추가적인 코드 }, onError: (e) { print('Socket error: $e'); _disconnect(); }, onDone: () { print('Socket disc..

Shared Workers 이용하여 WebSocket 연결 방법 (웹소켓을 연결한 상태에서 새로고침 또는 다른 페이지로 이동시 웹소켓 연결을 유지하는게 목적)

이 문서에서 하려고 하는 목적 사용자가 페이지를 새로 고칠 때 소켓이 닫힙니다. 그것은 원래 그렇습니다. 그러나 하고싶은것은 페이지 새로 고침 전반에 걸쳐 지속적인 웹 소켓 연결을 갖는 것입니다. 해결방법 사용자가 귀하의 페이지에 없는 경우에도 연결되도록 하는 것은 일종의 보안 위반이기 때문에 이것이 작동하는지 확실하지 않습니다. (새로 고침을 하다 보면 페이지를 빠져나왔다가 다시 들어가게 되기 때문입니다.) 가장 좋은 방법은 백그라운드에서 실행할 수 있는 서비스 워커를 사용하는 것입니다 웹 소켓을 사용하고 있으므로 SharedWorker를 사용하여 웹 소켓에 대한 새 스레드를 만드는 것이 좋습니다. 즉 웹소켓을 연결한 상태에서 새로고침 또는 다른 페이지로 이동시 웹소켓 연결을 유지하는데 목적이 있습니다..

프로그래밍/Js 2021.12.17