VeighNa量化社区
你的开源社区量化交易平台
Member
avatar
加入于:
帖子: 126
声望: 14

请问为什么RPC主动断开后,再次重连时会报错呢?
执行的操作步骤为:
1、添加RPC引擎。
2、连接PRC。
3、执行rpc的gateway.close()
以上都正常。
4、再次执行:self.main_engine.connect(rpc_setting, 'RPC')
报错如下:

`
File "d:\Anaconda3\lib\site-packages\vnpy\gateway\rpc\rpc_gateway.py", line 37, in connect
self.client.subscribe_topic("")
File "d:\Anaconda3\lib\site-packages\vnpy\rpc__init.py", line 377, in subscribe_topic
self.
socket_sub.setsockopt_string(zmq.SUBSCRIBE, topic)
File "d:\Anaconda3\lib\site-packages\zmq\sugar\socket.py", line 209, in set_string
return self.set(option, optval.encode(encoding))
File "zmq/backend/cython/socket.pyx", line 419, in zmq.backend.cython.socket.Socket.set
File "zmq/backend/cython/socket.pyx", line 135, in zmq.backend.cython.socket._check_closed
zmq.error.ZMQError: not a socket

Administrator
avatar
加入于:
帖子: 4500
声望: 320

zmq的socket对象是关闭后会自动销毁,要重用的话需要重新创建了,所以重启VN Trader进程即可

Member
avatar
加入于:
帖子: 126
声望: 14

用Python的交易员 wrote:

zmq的socket对象是关闭后会自动销毁,要重用的话需要重新创建了,所以重启VN Trader进程即可

其实我想实现的就是zmq的热连接,而非重启主进程。。

© 2015-2022 上海韦纳软件科技有限公司
备案服务号:沪ICP备18006526号

沪公网安备 31011502017034号

【用户协议】
【隐私政策】
【免责条款】