无法从函数

时间:2017-08-01 19:27:40

标签: python flask nanomsg

我在调用套接字的 .send() 函数时遇到问题,该函数在全局级别声明。

from nanomsg import Socket, PAIR, PUB

s2 = Socket(PAIR)
s2.connect('tcp://127.0.0.1:49234')
s2.send(b'connect')

def myfunc():
  global s2
  s2.send(b'Got here!')

myfunc()
print('closing socket')
s2.close()

在上面的示例中,myfunc()中发送的数据永远不会到达接收套接字。我知道接收套接字有效,因为收到了全局级别的.send()

- 附录 -

只是想补充一点,我的实际应用程序是一个烧瓶询问的Web服务,用于自定义Alexa技能,我已经验证通过激活相应的Alexa自定义技能意图来调用myfunc()

1 个答案:

答案 0 :(得分:1)

您可以检查小time.sleep(0.1)是否有帮助。连接需要一段时间,并且套接字可能不会立即为.send()准备好。

    s2 = Socket(PAIR)
    s2.connect('tcp://127.0.0.1:49234')
    time.sleep(0.2)
    s2.send(b'connect')