- 主题:如何自己开一个http服务器并通知别人来访问?
需求:
我方运行一个webhook服务,接收其他合作方的通知消息
需要在本地启动一个http服务,并把监听网址通知给合作方,让合作方知道应该把消息发到哪儿
如果先启动http服务,则会执行进serve_forever()函数内部,这函数长期也不会返回,没办法在http服务启动完成 *之后* 把我方网址通知给合作方
如果先通知对方再开启监听,则在此服务器启动过程中,对方有可能产生一堆通知失败
如果不入侵http服务器的启动函数增加启动后的hook,正确的做法应该是怎样呢?
--
FROM 139.227.19.*
单独的线程里启动http
--
FROM 27.47.131.*
那下一个问题就变成了:
主进程事后是不是要执行个wait卡住自己?
感觉是不是有点不太干净……
【 在 song023 的大作中提到: 】
: 单独的线程里启动http
--
FROM 139.227.19.*
可以用个通知机制
【 在 JulyClyde 的大作中提到: 】
: 那下一个问题就变成了:
: 主进程事后是不是要执行个wait卡住自己?
: 感觉是不是有点不太干净……
--
FROM 27.47.131.*
http服务里跑的代码做个通知应该不难吧,随便搞个js啥
【 在 JulyClyde 的大作中提到: 】
: 需求:
: 我方运行一个webhook服务,接收其他合作方的通知消息
: 需要在本地启动一个http服务,并把监听网址通知给合作方,让合作方知道应该把消息发到哪儿
: ...................
--
FROM 221.224.127.*
通知对方网址,属于另外一个事情/协议,所以本身就需要另外一个线程来干这事。
这样,即使中途切换了服务器网址,也可以做到无缝切换。
当然对方也需要有对应的两个服务来跟你通信,这才是优雅的实现。
【 在 JulyClyde 的大作中提到: 】
: 需求:
: 我方运行一个webhook服务,接收其他合作方的通知消息
: 需要在本地启动一个http服务,并把监听网址通知给合作方,让合作方知道应该把消息发到哪儿
: ...................
--
FROM 39.184.39.*
单独搞一个检测通知进程: while true; do curl localhost:8080/alive && tell another && break; done
--
FROM 111.197.102.*
在 serve_forever() 之前,Python 的 socketserver 会调用 server_activate() 这个方法来 listen(),你可以在这个方法里面,自己手动调一下 listen(),把自己获得的服务器地址从这里发出去。
【 在 JulyClyde 的大作中提到: 】
: 需求:
: 我方运行一个webhook服务,接收其他合作方的通知消息
: 需要在本地启动一个http服务,并把监听网址通知给合作方,让合作方知道应该把消息发到哪儿
: ...................
--
FROM 183.253.147.*
【 在 JulyClyde 的大作中提到: 】
: 需求:
: 我方运行一个webhook服务,接收其他合作方的通知消息
: 需要在本地启动一个http服务,并把监听网址通知给合作方,让合作方知道应该把消息发到哪儿
: ...................
有几点澄清, 公共服务的http, 使用的端口基本上都是固定的那几个, 网址不也用url,
所以, 你的动态监听体现在哪里不一样?
我的理解, 是你的http是不是绑定了本地一个随机的端口, 每次启动不一样,而不是绑定一个固定端口?
你可以才行预绑定的方式, 占用一个端口, 然后, 释放掉它,再用指定端口的方式用这个端口号启动http服务。
--
FROM 124.126.0.*
用单独线程启动http服务,不用卡住自己啊,可以不断检测http服务的一个ping接口,或者推送接口,确定服务启动之后再去通知第三方。
- 来自 水木社区APP v3.5.7
【 在 JulyClyde 的大作中提到: 】
: 那下一个问题就变成了:
: 主进程事后是不是要执行个wait卡住自己?
:
: 感觉是不是有点不太干净……
--
FROM 120.244.216.*