웹사이트 검색

typescript - SignalR가 웹소켓을 사용하지 못할 때 X 수행하기

SignalR가 Websocket 연결을 설정할 수 없을 때 사용자에게 경고를 주고 싶습니다. Websocket 연결이 차단되었는지/SignalR이 다른 전송 방식을 사용하는지 어떻게 알 수 있나요?

저는 Asp.net Core SignalR과 Typescript를 사용하고 있습니다.

답변 #1

Websocket 연결이 차단되었는지 또는 SignalR이 다른 전송 방식을 사용하고 있는지 어떻게 알 수 있나요?

SignalR JavaScript 클라이언트에서는 이 코드 스니펫을 사용하여 전송 수단을 가져올 수 있습니다.

HubConnection.connection.transport.constructor.name

테스트 코드

var connection = new

더 많은 것을 읽으십시오 →

node.js - express로 부트스트랩할 때 NestJS에서 WebSockets 핸드셰이크가 작동하지 않음 (여러 서버)

우리의 NestJs 서버는 HTTP를 통해 웹소켓 핸드셰이크를 완벽하게 처리하곤 했습니다. 하지만 그 후 HTTPS 지원을 추가했고, 여기서 설명된 것처럼 여러 서버 기술을 사용하여 구현했습니다: https://docs.nestjs.com/faq/multiple-servers

그렇게 한 후에, 웹소켓 핸드셰이크(업그레이드 요청)가 작동을 멈췄습니다.

웹 소켓이 작동하는 우리가 가지고 있던 NestJs 부트스트래핑은 다음과 같았습니다:

const app = await NestFactory.create(AppModule); const webSocketAdapter = new WebSocketAdapter(app); app.useWebSocketAdapter(webSocketAdapter); [...] // We initialize expres

더 많은 것을 읽으십시오 →

typescript - AppSync 구독 Websocket 엔드포인트를 위해 Aws Amplify를 어떻게 구성하나요?

어떻게 Amplify.configure(awsConfig)를 사용하여 웹소켓 엔드포인트를 지정하나요? 문서에서는 aws_appsync_graphqlEndpoint를 사용하여 단일 HTTP 엔드포인트를 설정하는 방법만 보여줍니다.

AWS Amplify.configure 문서.

저는 별도의 AppSync URL을 가지고 있으며, 그 중 하나는 '실시간' 웹소켓 URL입니다.

REACT_APP_GRAPHQL_ENDPOINT_HTTP REACT_APP_GRAPHQL_ENDPOINT_WS

저는 Amplify GraphQL 구독을 사용하여 AWS Amplify SDK로 AppSync에 연결하려고 하고 있습니다.

답변 #1

나는 Amplify.configure(awsConfig)

더 많은 것을 읽으십시오 →

자바스크립트 - 마이크로폰 바이트를 웹소켓으로 전송

저는 워키토키 프로젝트에서 작업하고 있으며, Angular와 WebSocket을 사용하고 있습니다. 그리고 이것이 제 코드입니다:

navigator.mediaDevices.getUserMedia(constraints).then(function (stream) { recorder = new MediaRecorder(stream); if(recorder.state === "recording"){ recorder.stop(); } else{ recorder.start(500); recorder.addEventListener('dataavailable', (async event => {

더 많은 것을 읽으십시오 →

reactjs - 리액트 네이티브: 컴포넌트 간에 웹소켓을 공유하는 방법은?

컴포넌트에서 웹소켓으로 받은 데이터를 사용하고 싶습니다. 또한, 컴포넌트 간에 웹소켓 연결과 데이터를 어떻게 공유할 수 있나요?

더 많은 것을 읽으십시오 →

javascript - NestJS 웹소켓을 위한 동적 이벤트 이름

NestJS에서 socket.io 통신의 이벤트를 구독하기 위해 @SubscribeMessage 어노테이션을 사용할 수 있지만, 이렇게 하면 이벤트 이름을 "하드코딩"으로만 사용할 수 있습니다.

이벤트를 동적으로 청취할 가능성이 있나요? 예를 들어, 접두사 형식의 이벤트를 청취하는 것과 같이요?

감사합니다.

답변 #1

답이 없어서 제가 하나 시도해 보려고 했습니다. 자세한 내용이 부족해서 죄송합니다.

저는 @SubscribeMessage로 그것을 '우아하게' 하는 방법을 찾지 못했지

더 많은 것을 읽으십시오 →

자바스크립트 - 웹소켓을 사용한 리액트 네이티브의 최적 아키텍처

저는 React-Native와 WebSocket을 사용하여 암호화폐 거래 앱을 만들고 있습니다. 여기 제가 겪고 있는 일반적인 문제들이 있습니다:

  1. 한 번 클래스 밖에서 webSocket을 할당하면 이벤트가 연결되지 않습니다. 어떻게 싱글톤 WebSocket 인스턴스를 만들 수 있나요? 제 코드는 다음과 같습니다:
class WS { webSocket: WebSocket; constructor() { this.webSocket = new WebSocket('socket_url'); this.webSocket.binaryType = 'arraybuffer'; } _send(coin: string, type: Subject) { const subPackage = new SubscribePackage(`${coin}@${type}`); this.webSocket.onopen = ()

더 많은 것을 읽으십시오 →

타입스크립트 - Next.js 14 앱 라우터 TRPC 웹소켓 구독 서버 설정

저는 nextJS 14 앱 라우터를 TRPC와 함께 사용하고 있습니다. TRPC의 웹소켓 구독 기능을 구현하려고 했지만, 이를 어떻게 구현하는지에 대한 최신 문서는 거의 찾을 수 없었습니다.

제가 우연히 발견한 한 가지 자료는 trpc 개발자가 관리하는 [이 리포지토리](https://github.com/trpc/examples-next-prisma-websockets-starter)였지만, 이 리포지토리는 앱 라우터를 사용하지 않습니다. 그 안에는 주목할 만한 두 개의 파일이 있는데, src/server/ 안의 prodServer.ts와 wssDevServer.ts입니다. 이상적으로는 프로덕션과 개발 환경 모두에서 웹소켓 서버를 설정하는 하나의 파일만 있으면 좋겠지만, 여기서는 왜 각각 별도의 파일을 사용하는 걸까요?

내 환경에서 개발 서버를 구현하면, applyWSSHand

더 많은 것을 읽으십시오 →

reactjs - React TypeScript에서 재시도 메커니즘을 갖춘 강력한 SignalR WebSocket 연결을 구현하는 방법은?

저는 SignalR을 사용하여 실시간 통신을 구현하는 React TypeScript 애플리케이션을 만들고 있습니다. 자동 재시도 메커니즘이 있는 안정적인 WebSocket 연결을 구현해야 합니다.

다음은 제가 현재 구현한 내용입니다:

const MAX_RETRIES = 3; const RETRY_DELAY = 30000; // 30 seconds export function useWebSocketConnection() { const dispatch = useDispatch(); const userData = useAuthenticatedSelector(); useEffect(() => { if (userData?.userId && userData?.userName) { const connection = new HubConnectionBuilder() .withUrl(proces

더 많은 것을 읽으십시오 →

angular - TypeScript에서 웹소켓을 다시 연결하는 방법은?

"retry()"를 추가하면 오류가 발생합니다:

src/app/films.service.ts(28,20)에서 오류 TS2339: 'WebSocketSubject' 유형에는 'retry' 속성이 없습니다.

this.wsSubject.retry().subscribe( (msg) => this.parseAnswer(msg), (err) => console.log(err), () => console.log('complete') );

더 많은 것을 읽으십시오 →