从客户端连接到websockets时出错

问题描述 投票:-1回答:1

我开始使用Web套接字并且在使用角度时很困惑。

下面是使用socket.io发送数据的后端代码



var milo_socket_io = io
                    .of('/milo')
                    .on('connection', function(socket)
                    {
                        console.log("Client connected " + socket.id);
                        clients.push(socket);
                    });



function sendLiveData(jsonStr)
{
    switch (jsonStr.deviceType)
    {
        case 'milo' :
            milo_socket_io.emit('data', JSON.stringify(jsonStr));
            break;
        default:
            console.log("Should not happen. Device Type " + jsonStr.deviceType)
    }
}


如何连接到此并接收数据。我尝试了一些教程,但我不确定我是否正确,我在控制台中出错,当我尝试获取数据时出现错误

websocket.js:118 WebSocket connection to 'ws://.../socket.io/?EIO=3&transport=websocket&sid=AqFUpGtwfSsoDXvGAAIc' failed: Error during WebSocket handshake: Unexpected response code: 400

这是我在客户端尝试的

In service.ts

export class WebSocketService {

  socket: SocketIOClient.Socket;

  constructor() { 
  }

  observer : Observer<number> ;

  recieveDate(){
    this.socket = socketio('http://ip:port/milo')

    this.socket.on('emit',(res) => {
      this.observer.next(res)
    });

    return this.createObservable()
  }

  createObservable() : Observable<number> {
    return new Observable(observer => {
      this.observer = observer;
    });
  }

}
In component.ts

  realTime() {
     this.webSocket.recieveDate()
     .subscribe(data => {
       this.data = data
     }),
    console.log(this.data)
  } 
node.js angular websocket socket.io
1个回答
0
投票

您可以使用从webSocket角度装运的rxjs

请考虑阅读以下内容:

https://rxjs-dev.firebaseapp.com/api/webSocket/webSocket

© www.soinside.com 2019 - 2024. All rights reserved.