SpecialistOff.NET / Вопросы / Статьи / Фрагменты кода / Резюме / Метки / Помощь / Файлы
НазадМетки: [kubernetes]; [nginx]; [javascript];
Оригинал: https://gist.github.com/jsdevtom/7045c03c021ce46b08cb3f41db0d76da
--- frontend-ws-connection.ts --- ingress-service.yaml --- server-cluster-ip-service.yaml --- server-deployment.yaml --- server.js
export const ws = webSocketingress-service.yaml Скачать(`wss://${location.hostname}:${location.protocol === 'https:' ? 443 : 80}/ws/`); export const wsObserver = ws .pipe( retryWhen(errors => errors.pipe( delay(1000) ) ) ); wsObserver.subscribe(console.log);
apiVersion: extensions/v1beta1 kind: Ingress metadata: name: ingress-service namespace:server-cluster-ip-service.yaml Скачатьannotations: kubernetes.io/ingress.class: nginx nginx.ingress.kubernetes.io/proxy-read-timeout: 3600 nginx.ingress.kubernetes.io/proxy-send-timeout: 3600 spec: rules: - http: paths: - path: / backend: serviceName: client-cluster-ip-service servicePort: 3000 # Below is the important part! - path: /ws/ backend: serviceName: server-cluster-ip-service servicePort: 40510
apiVersion: v1 kind: Service metadata: name: server-cluster-ip-service namespace:server-deployment.yaml Скачатьspec: type: ClusterIP selector: component: server ports: - port: 40510 targetPort: 40510 # The below line isn't required. protocol: TCP
apiVersion: apps/v1 kind: Deployment metadata: name: server-deployment namespace:server.js Скачатьspec: replicas: 1 selector: matchLabels: component: server template: metadata: labels: component: server spec: containers: - name: server image: ports: - containerPort: 40510
import { Server as WebSocketServer } from 'ws';
// IMPORTANT: not a secure connection
const wss = new WebSocketServer({
path: '/ws/',
port: 40510,
});
wss.on('connection', function (ws) {
console.log('connection!');
});
wss.on('close', function close() {
console.log('ws disconnected');
});