当前位置: 首页 > 知识库问答 >
问题:

如何建立从角承座到烧瓶承座的websocket连接

楚权
2023-03-14

我不熟悉web套接字,我正在使用flask socketio和angular socketio作为客户端实现web套接字服务器,

我在烧瓶里用这个密码

application.py

@socketio.on('connect', namespace='/test')
def test_connect():    
    print('Client connected')

我用这个代码连接烧瓶服务器

插座服务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问题,在遇到这个问题后,我还尝试使用代理中的“/api”进行连接。配置。下面的json作为url

{
  "/api": {
  "target": "http://127.0.0.1:5000",
  "secure": false,
  "pathRewrite": {
      "^/api": ""
  }
  }
}

这是我的应用程序。组成部分

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) {}
}

共有1个答案

朱典
2023-03-14

插座。如果需要跨域访问IO服务器,则需要对其进行适当配置。请参见留档中的cors_allowed_origins选项。

套接字的默认URL。IO服务是/socket。io。如果要使用不同的URL,则需要告知客户端和服务器。对于服务器,这是路径选项,也有文档记录。

 类似资料:
  • 问题内容: 我正在使用Java套接字客户端。如果服务器仍连接到我的客户端,但是它不发送对我的消息的响应,则最终会出现读取超时异常。 在那种情况下,我想测试一下是否应该重新连接我的插座,或者只是保持插座可重复使用。 我使用这种情况: 但我似乎总是重新连接。当我记录布尔属性的值时,我看到以下内容: 已连接:true已关闭:true绑定:true 如何连接和关闭? TIA 问题答案: 该主题对此主题进行

  • 后端的这两个模型在前端有它们的对应。我添加_links部分是因为Spring Rest api提供链接而不是外键: 我根据从API获得的信息创建了这些模型。例如,localhost:8080/api/b/1上的get请求给出: 我可以使用下面所示的angular 2服务方法轻松地在表A中插入新行(因为它不包含外键): 在Spring中,当我试图将新行插入到表B中时,会出现以下错误: 我想知道htt

  • 问题内容: Java 类有两种方法,分别检查套接字是关闭还是连接。我想知道仅开放的TCP套接字与开放和连接的TCP套接字有什么区别,这与UDP有何不同。 问题答案: 为了把事情简单地说,这是 开放的 是要么等待连接或已与另一个成功连接的插座。当一个套接字被 关闭 ,这意味着这个套接字没有连接不再可用,而且它的资源已被释放。一个已连接的好,这意味着该套接字已连接到另一个。 这样可以 同时打开并连接。

  • 我的会监听局域网连接并很好地接受它们,但当我试图通过手机连接到同一个网络时(使用3G连接),它似乎无法连接。 > 我尝试使用站点获取并尝试连接到它,它确实得到正确的(用我的路由器检查),但然后没有连接被接受。 我试着打开windows 7和路由器上的端口。 我把这些行在我的服务器构造函数: 我将主机上的ip设置为0.0.0.0 谢谢你的帮助。

  • 我试图了解Socketchannes和NIO的总体情况。我知道如何使用常规套接字,以及如何为每个客户机服务器创建一个简单的线程(使用常规阻塞套接字)。 所以我的问题是: 什么是袜子通道 当我使用SocketChannel而不是Socket时,额外得到了什么 通道和缓冲区之间的关系是什么 什么是选择器 文档中的第一句话是

  • 背景我正试图为我的java服务器创建一个android客户端应用程序,并让它们使用TCP套接字进行通信。 当我在android设备模拟器上运行我的应用程序时,它的工作原理是什么 当我在手机上运行该应用程序时,我无法正常工作,我在创建套接字时遇到连接超时。 异常 java.net.Connect异常: 无法连接到 /10.0.2.2 (端口 9111): 连接失败: ETIMEDOUT (连接超时)

  • 我正试图将数据放入flask中的表中,但由于某种原因,它为每个字符创建了一个新行,而不是仅仅将完整的字符串放入行中。 代码: 表代码:

  • 我目前正在编写一个简单的TCP聊天客户端服务器应用程序,它与套接字一起工作。客户端连接到服务器,一旦被接受,就会创建一个新的工作线程来侦听客户端输入。连接到服务器(端口8818处的localhost)工作正常,但只要工作线程在登录java.net之后开始监听更多客户端输入。SocketException:引发连接重置(请参阅下面的堆栈跟踪)。我知道,此异常的一个可能来源可能是服务器或客户端未正确或