Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >带有typescript的express服务器和套接字:) ==> ' server‘在类型'App’上不存在

带有typescript的express服务器和套接字:) ==> ' server‘在类型'App’上不存在
EN

Stack Overflow用户
提问于 2016-08-18 13:07:02
回答 2查看 1.1K关注 0票数 0

我正在尝试这个使用socketio的expressjs服务器的经典实现:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    this.app = express();
    this.server = http.createServer(this.app);
    this.io = socket(this.server);

但是typescript抛出了这些错误:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
src/server/ts/app.ts(23,38): error TS2345: Argument of type 'Application' is not assignable to parameter of type '(request: IncomingMessage, response: ServerResponse) => void'.
src/server/ts/app.ts(24,8): error TS2339: Property 'io' does not exist on type 'App'.
src/server/ts/app.ts(24,25): error TS2339: Property 'server' does not exist on type 'App'.

我该如何管理呢?处理这个问题的正确方法是什么?

EN

回答 2

Stack Overflow用户

发布于 2021-06-30 19:38:00

这是我的变通方法

控制器中的某个位置:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
(req.app as any).io as io.Server
票数 1
EN

Stack Overflow用户

发布于 2016-09-01 03:57:46

看起来你的另一个问题是在这之后发布的,这仍然相关吗?

好的,让我们看看我做了什么工作。我已经将套接字分离到一个配置文件中,因为我的app.js变得杂乱无章。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
app.use(express.static(path.join(__dirname, '/')));

app.use(express.static(path.join(__dirname, '/node_modules/')));

  var clients = {};

var server = http.createServer(app);
var io  = require('socket.io')(server);

require('./config/app.socket.js')(io);
server.listen(8001);
io.set("origins", "*:*");

因此,我跳过了中间人,将服务器直接传递给socket.io导入。然后,我将对该io服务器的引用传递给我的app.socket.js文件,并在端口8001上监听该服务器

下面是我的app.socket.js初始化

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
module.exports = function(io){
  var clients = {};

   var sockets;

  io.on('connection', function (socket) {
  sockets = socket;

  socket.on(//your socket function)

}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39019077

复制
相关文章
TypeScript-infer关键字和TypeScript-unknown类型
博主假设有这么一个需求: 定义一个类型, 如果传入的是数组, 就返回数组的元素类型, 如果传入的是普通类型, 则直接返回这个类型。
杨不易呀
2023/09/29
2120
套接字socket 的地址族和类型、工作原理、创建过程
注:本分类下文章大多整理自《深入分析linux内核源代码》一书,另有参考其他一些资料如《linux内核完全剖析》、《linux c 编程一站式学习》等,只是为了更好地理清系统编程和网络编程中的一些概
s1mba
2018/01/03
2.7K1
套接字socket 的地址族和类型、工作原理、创建过程
套接字
版权声明:本文为博主原创文章,转载请注明博客地址: https://blog.csdn.net/zy010101/article/details/88673990
zy010101
2019/05/25
1.3K0
JavaTCP和UDP套接字编程
原文地址:http://www.cnblogs.com/MindMrWang/p/8919890.html 在我们刚开始入门Java后端的时候可能你会觉得有点复杂,包含了很多杂七杂八的知识,例如文件上传下载,监听器,JDBC,请求重定向,请求转发等等(当然也没有很多),但是我们自己真正的去开发一个小型网站(对安全性一起其他并发不作要求)的时候,其实我们会发现,Java后端是真的省事,好像除了CURD还是CURD,没有什么更新鲜的了。但是我们回顾计算机网络的知识提出疑问,计算机信息传输有TCP和UDP两种连接方式,但是我们编程的时候怎么没体现?怎么回事呢?
MindMrWang
2018/09/29
5000
JavaTCP和UDP套接字编程
JavaTCP和UDP套接字编程
原文地址:http://www.cnblogs.com/MindMrWang/p/8919890.html 在我们刚开始入门Java后端的时候可能你会觉得有点复杂,包含了很多杂七杂八的知识,例如文件上传下载,监听器,JDBC,请求重定向,请求转发等等(当然也没有很多),但是我们自己真正的去开发一个小型网站(对安全性一起其他并发不作要求)的时候,其实我们会发现,Java后端是真的省事,好像除了CURD还是CURD,没有什么更新鲜的了。但是我们回顾计算机网络的知识提出疑问,计算机信息传输有TCP和UDP两种连
MindMrWang
2018/04/24
7060
JavaTCP和UDP套接字编程
套接字选项
选项影响套接字操作,如 封包路由,OOB数据传输,获取和设置套接字选项分别是 getsockopt  setsockopt 用法如下: int getsockopt(SOCKET s,int level,int optname,char* optval,int* optlen); int setsockopt(SOCKET s,int level,int optname,char* optval,int* optlen); 每个协议层套接字的选项有不同的级别: 应用层:SOL_SOCKET 传输层:IPPR
用户1154259
2018/01/17
1.2K0
Socket(套接字)
TCP/IP只是一个协议栈,Socket的出现只是可以更方便的使用TCP/IP协议栈而已,其对TCP/IP进行了抽象,形成了几个最基本的函数接口。比如create,listen,accept,connect,read和write等等。
老马的编程之旅
2022/06/22
1.3K0
Python套接字
Python只支持AF_UNIX(基于文件)、AF_NETLINK(使用标准的BSD套接字接口进行用户级别和内核级别代码之间的IPC)、AF_TIPC(透明的进程间通信)、AF_INET(基于网络)家族。
用户4845306
2019/03/14
1.6K0
Java套接字
  本文补充一下Java关于套接字方面的内容,因为其应用相对比较简单,所以下面介绍两个程序实例。
云海谷天
2022/08/09
7680
Java套接字
【Groovy】使用 Groovy 语言开发服务器 Server 和客户端 Client 套接字程序 ( 服务器端开发 )
然后调用 ServerSocket 服务器套接字 的 accept 方法 , 阻塞当前线程 , 等待客户端连接 ,
韩曙亮
2023/03/30
1.6K0
accept()返回的套接字绑定哪个端口 新旧套接字的联系
摘要:对于服务器编程中最重要的一步等待并接受客户的连接,那么这一步在编程中如何完成,accept函数就是完成这一步的。它从内核中取出已经建立的客户连接,然后把这个已经建立的连接返回给用户程序,此时用户程序就可以与自己的客户进行点到点的通信了。
bear_fish
2018/09/20
3.9K1
16(套接字)
套接字描述符在Unix系统中是用文件描述符实现的。事实上,许多处理文件描述符函数(read和write)都可以处理文件描述符 要创建一个套接字,可以调用socket函数
提莫队长
2019/02/21
9820
TypeScript中的高级类型工具类型及关键字
本文主要帮助理解 TypeScript 中的高级类型及工具类型。在实际使用 TypeScript 的开发过程中,得益于这些高级类型于工具类型,我们可以更方便的构建出我们需要的类型。
路过的那只狗
2020/11/13
2.1K0
原始套接字和流量嗅探
《Python黑帽子:黑客与渗透测试编程之道》的读书笔记,会包括书中源码,并自己将其中一些改写成Python3版本。书是比较老了,anyway,还是本很好的书
红客突击队
2022/09/29
1.8K0
原始套接字和流量嗅探
基于udp的套接字
1 ss = socket() #创建一个服务器的套接字 2 ss.bind() #绑定服务器套接字 3 inf_loop: #服务器无限循环 4 cs = ss.recvfrom()/ss.sendto() # 对话(接收与发送) 5 ss.close() # 关闭服务器套接字 udp客户端 cs = socket() # 创建客户套接字 comm_loop: # 通讯循环 cs.sendto()/c
超蛋lhy
2018/08/31
8130
【说站】python套接字编程的服务器和客户端
1、服务器可以是程序、计算机或专门用于管理网络资源的设备。使用socket.socket()方法创建服务器端套接字符。
很酷的站长
2022/11/24
1.5K0
基于TCP的套接字
socket通信流程与打电话流程类似,我们就以打电话为例来实现一个low版的套接字通信
超蛋lhy
2018/08/31
7600
基于TCP的套接字
网络编程初识和socket套接字[通俗易懂]
C/S即:Client与Server ,中文意思:客户端与服务器端架构,这种架构也是从用户层面(也可以是物理层面)来划分的。
全栈程序员站长
2022/07/21
1.1K0
网络编程初识和socket套接字[通俗易懂]
【Groovy】使用 Groovy 语言开发服务器 Server 和客户端 Client 套接字程序 ( 客户端开发 )
在客户端 , 创建 Socket 套接字 , 传入服务器端的 IP 地址 和 端口号 ;
韩曙亮
2023/03/30
1.2K0
套接字Socket编程
Socket,原意插座、插口。写软件程序时,可以想象成一根网线,一头插在客户端,一头插在服务端,然后进行通信。所以通信前,双方都要建立一个Socket。
JavaEdge
2021/12/07
1.3K0
套接字Socket编程

相似问题

TypeScript + Express:类型“”IncomingMessage“”上不存在属性“”rawBody“”

1175

使用TypeScript和类型的Express服务器

10

类型记录:“套接字”类型上不存在属性“请假”

11

TypeScript错误:“”Navigator“”类型上不存在属性“”app“”

30

带有TypeScript错误状态类型的Express

118
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文