如何建立从 angular-socketio 到 flask-socketio 的 websocket 连接
How to establish websocket connection from angular-socketio to flask-socketio
我是网络套接字的新手,我正在使用 flask-socketio 实现网络套接字服务器,angular-socketio 作为客户端,
我在烧瓶中使用此代码
application.py
@socketio.on('connect', namespace='/test')
def test_connect():
print('Client connected')
我在 angular 服务中使用此代码连接到 flask 服务器
socket.service.ts
import { Injectable } from "@angular/core";
import * as io from "socket.io-client";
import { Observable } from "rxjs";
@Injectable({
providedIn: "root"
})
export class SocketService {
private socket;
constructor() {
this.socket = io("/test"); // i get example by connect using flask namespace
this.socket = io("localhost:5000"); // i tried this
this.socket = io(`/api`); // i also tried this
}
public sendMessage(message) {
this.socket.emit("new-message", message);
}
public getMessages = () => {
return Observable.create(observer => {
this.socket.on("new-message", message => {
observer.next(message);
});
});
};
}
我也尝试使用 localhost:5000 作为 URL 连接到 Flask 服务器,但它会导致 CORS 问题,在遇到该问题后我也尝试使用 '/[=33= 连接]' 来自下面的 proxy.config.json 作为 url
{
"/api": {
"target": "http://127.0.0.1:5000",
"secure": false,
"pathRewrite": {
"^/api": ""
}
}
}
这是我的app.component
app.component.ts
import { Component } from "@angular/core";
import { SocketService } from "./socket.service";
@Component({
selector: "app-root",
templateUrl: "./app.component.html",
styleUrls: ["./app.component.css"]
})
export class AppComponent {
title = "angularsocketio";
constructor(private socketService: SocketService) {}
}
如果您需要跨域访问 Socket.IO 服务器,则需要对其进行适当配置。请参阅 documentation 中的 cors_allowed_origins
选项。
Socket.IO 服务的默认 URL 是 /socket.io
。如果要使用不同的 URL,则需要告知客户端和服务器。对于服务器,这是 path
选项,也是 documented.
我是网络套接字的新手,我正在使用 flask-socketio 实现网络套接字服务器,angular-socketio 作为客户端,
我在烧瓶中使用此代码
application.py
@socketio.on('connect', namespace='/test')
def test_connect():
print('Client connected')
我在 angular 服务中使用此代码连接到 flask 服务器
socket.service.ts
import { Injectable } from "@angular/core";
import * as io from "socket.io-client";
import { Observable } from "rxjs";
@Injectable({
providedIn: "root"
})
export class SocketService {
private socket;
constructor() {
this.socket = io("/test"); // i get example by connect using flask namespace
this.socket = io("localhost:5000"); // i tried this
this.socket = io(`/api`); // i also tried this
}
public sendMessage(message) {
this.socket.emit("new-message", message);
}
public getMessages = () => {
return Observable.create(observer => {
this.socket.on("new-message", message => {
observer.next(message);
});
});
};
}
我也尝试使用 localhost:5000 作为 URL 连接到 Flask 服务器,但它会导致 CORS 问题,在遇到该问题后我也尝试使用 '/[=33= 连接]' 来自下面的 proxy.config.json 作为 url
{
"/api": {
"target": "http://127.0.0.1:5000",
"secure": false,
"pathRewrite": {
"^/api": ""
}
}
}
这是我的app.component
app.component.ts
import { Component } from "@angular/core";
import { SocketService } from "./socket.service";
@Component({
selector: "app-root",
templateUrl: "./app.component.html",
styleUrls: ["./app.component.css"]
})
export class AppComponent {
title = "angularsocketio";
constructor(private socketService: SocketService) {}
}
如果您需要跨域访问 Socket.IO 服务器,则需要对其进行适当配置。请参阅 documentation 中的 cors_allowed_origins
选项。
Socket.IO 服务的默认 URL 是 /socket.io
。如果要使用不同的 URL,则需要告知客户端和服务器。对于服务器,这是 path
选项,也是 documented.