Как манипулировать данными веб-сокета в angular 8 - PullRequest
0 голосов
/ 08 марта 2020

У меня есть некоторые данные, которыми я манипулирую в таблицу, используя l oop. Здесь данные будут поступать один за другим, как мы используем в websocket. Я использую websocket в своем проекте для этого, чтобы заполнить данные, которые приходят один за другим. Данные должны быть заполнены в таблицу один за другим, как это происходит случайным образом. Здесь мне нужно держать данные и pu sh один за другим, или они будут автоматически произвольно перемещаться в таблицу. Если мне нужно держать или pu sh, как это сделать, может кто-нибудь, пожалуйста, помогите мне. Вот пример кода. https://stackblitz.com/edit/angular-eqlxkd?file=src%2Fapp%2Fapp.component.ts

home.component. html

<table border="1" cellspacing="2">
 <tr *ngFor = "let x of mySocketData">
 <td>{{x.id}}</td>
 <td>{{x.name}}</td>
 </tr>
 </table>

home.component.ts

import { Component, OnInit } from '@angular/core';
import { CommonserviceService } from './../utilities/services/commonservice.service';
import { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';
import {NgbModal, ModalDismissReasons} from '@ng-bootstrap/ng-bootstrap';
import * as Stomp from 'stompjs';
import * as SockJS from 'sockjs-client';

declare var $: any;
@Component({
  selector: 'app-home',
  templateUrl: './home.component.html',
  styleUrls: ['./home.component.css']
})

export class HomeComponent implements OnInit {
imageSource :any;
statusdata: any;
closeResult: string;
registerForm: FormGroup;
submitted = false;
webSocketEndPoint: string = 'http://localhost:8080/ws';
topic: string = "/topic/greetings";
stompClient: any;
mySocketData:any;

constructor(private modalService: NgbModal,private formBuilder: FormBuilder) {}
  ngOnInit() {
    console.log("Initialize WebSocket Connection");
        let ws = new SockJS(this.webSocketEndPoint);
        this.stompClient = Stomp.over(ws);
        const _this = this;
        _this.stompClient.connect({}, function (frame) {
            _this.stompClient.subscribe(_this.topic, function (sdkEvent) {
                this.mySocketData = sdkEvent;
               console.log(this.mySocketData);//[{"id":1,"name":"cat"},{"id":2,"name":"arctichare"},{"id":3,"name":"baboon"}]
            });
            //_this.stompClient.reconnect_delay = 2000;
        });

  }

  }

пакет. json

{
  "name": "sampleproject",
  "version": "0.0.0",
  "scripts": {
    "ng": "ng",
    "start": "ng serve",
    "build": "ng build",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e"
  },
  "private": true,
  "dependencies": {
    "@angular/animations": "~8.2.8",
    "@angular/common": "~8.2.8",
    "@angular/compiler": "~8.2.8",
    "@angular/core": "~8.2.8",
    "@angular/forms": "~8.2.8",
    "@angular/http": "^7.2.15",
    "@angular/platform-browser": "~8.2.8",
    "@angular/platform-browser-dynamic": "~8.2.8",
    "@angular/router": "~8.2.8",
    "@ng-bootstrap/ng-bootstrap": "^5.2.2",
    "bootstrap": "^4.4.1",
    "jquery": "^3.4.1",
    "mysql": "^2.18.1",
    "net": "^1.0.2",
    "rxjs": "~6.4.0",
    "rxjs-compat": "^6.5.3",
    "sockjs-client": "^1.4.0",
    "stompjs": "^2.3.3",
    "tslib": "^1.10.0",
    "zone.js": "~0.9.1"
  },
  "devDependencies": {
    "@angular-devkit/build-angular": "~0.803.6",
    "@angular/cli": "~8.3.6",
    "@angular/compiler-cli": "~8.2.8",
    "@angular/language-service": "~8.2.8",
    "@types/node": "~8.9.4",
    "@types/jasmine": "~3.3.8",
    "@types/jasminewd2": "~2.0.3",
    "codelyzer": "^5.0.0",
    "jasmine-core": "~3.4.0",
    "jasmine-spec-reporter": "~4.2.1",
    "karma": "~4.1.0",
    "karma-chrome-launcher": "~2.2.0",
    "karma-coverage-istanbul-reporter": "~2.0.1",
    "karma-jasmine": "~2.0.1",
    "karma-jasmine-html-reporter": "^1.4.0",
    "protractor": "~5.4.0",
    "ts-node": "~7.0.0",
    "tslint": "~5.15.0",
    "typescript": "~3.5.3"
  }
}

index. html

<script>
      var global = window; // fix global is undefined in socketjs-client
  </script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...