Python 为什么RxPY';s TwistedScheduler引发已调用错误?

Python 为什么RxPY';s TwistedScheduler引发已调用错误?,python,twisted,reactive-programming,rx-py,Python,Twisted,Reactive Programming,Rx Py,最简单的工作示例——一个客户端使用一个可观察的命令逐字向echo服务器发送'Hello world' 客户端: from rx.concurrency.mainloopscheduler import TwistedScheduler from rx.observable import Observable from twisted.internet import reactor from twisted.internet.protocol import ClientFactory from t

最简单的工作示例——一个客户端使用一个可观察的
命令逐字向echo服务器发送
'Hello world'

客户端

from rx.concurrency.mainloopscheduler import TwistedScheduler
from rx.observable import Observable
from twisted.internet import reactor
from twisted.internet.protocol import ClientFactory
from twisted.protocols.basic import LineReceiver

class RxProtocol(LineReceiver):
    def connectionMade(self):
        Observable.from_list('Hello world'.split(' '), TwistedScheduler(reactor)).subscribe(self.sendLine)

    def lineReceived(self, line):
        print line

if __name__ == '__main__':
    f = ClientFactory()
    f.protocol = RxProtocol
    reactor.connectTCP("localhost", 8000, f)
    reactor.run()
服务器:来自twisted示例的简单回显服务器--

在服务器运行的情况下,启动客户端将提供:

C:\Program Files\Python\2.7\python.exe C:/client.py
Unhandled Error
Traceback (most recent call last):
  File "C:/client.py", line 16, in <module>
    reactor.run()
  File "C:\Program Files\Python\2.7\lib\site-packages\twisted\internet\base.py", line 1194, in run
    self.mainLoop()
  File "C:\Program Files\Python\2.7\lib\site-packages\twisted\internet\base.py", line 1203, in mainLoop
    self.runUntilCurrent()
--- <exception caught here> ---
  File "C:\Program Files\Python\2.7\lib\site-packages\twisted\internet\base.py", line 825, in runUntilCurrent
    call.func(*call.args, **call.kw)
  File "C:\Program Files\Python\2.7\lib\site-packages\rx\concurrency\mainloopscheduler\twistedscheduler.py", line 36, in interval
    disposable.disposable = action(scheduler, state)
  File "C:\Program Files\Python\2.7\lib\site-packages\rx\concurrency\scheduler.py", line 72, in schedule_work
    group.remove(d)
  File "C:\Program Files\Python\2.7\lib\site-packages\rx\disposables\compositedisposable.py", line 46, in remove
    item.dispose()
  File "C:\Program Files\Python\2.7\lib\site-packages\rx\disposables\compositedisposable.py", line 63, in dispose
    disposable.dispose()
  File "C:\Program Files\Python\2.7\lib\site-packages\rx\disposables\disposable.py", line 34, in dispose
    self.action()
  File "C:\Program Files\Python\2.7\lib\site-packages\rx\concurrency\mainloopscheduler\twistedscheduler.py", line 42, in dispose
    handle[0].cancel()
  File "C:\Program Files\Python\2.7\lib\site-packages\twisted\internet\base.py", line 89, in cancel
    raise error.AlreadyCalled
twisted.internet.error.AlreadyCalled: Tried to cancel an already-called event.
C:\Program Files\Python\2.7\Python.exe C:/client.py
未处理错误
回溯(最近一次呼叫最后一次):
文件“C:/client.py”,第16行,在
反应堆运行()
文件“C:\Program Files\Python\2.7\lib\site packages\twisted\internet\base.py”,第1194行,正在运行
self.mainLoop()
文件“C:\Program Files\Python\2.7\lib\site packages\twisted\internet\base.py”,第1203行,在mainLoop中
self.rununtlcurrent()
---  ---
文件“C:\Program Files\Python\2.7\lib\site packages\twisted\internet\base.py”,第825行,在rununtlcurrent中
call.func(*call.args,**call.kw)
文件“C:\Program Files\Python\2.7\lib\site packages\rx\concurrency\mainloopscheduler\twistedscheduler.py”,第36行,间隔
一次性。一次性=操作(调度程序,状态)
文件“C:\Program Files\Python\2.7\lib\site packages\rx\concurrency\scheduler.py”,第72行,在schedule\u work中
组。删除(d)
文件“C:\Program Files\Python\2.7\lib\site packages\rx\disposables\compositedisposable.py”,删除中第46行
项目.处置()
文件“C:\Program Files\Python\2.7\lib\site packages\rx\disposables\compositedisposable.py”,第63行,在dispose中
一次性处置
文件“C:\Program Files\Python\2.7\lib\site packages\rx\disposables\disposable.py”,第34行,在dispose中
自我行动
文件“C:\Program Files\Python\2.7\lib\site packages\rx\concurrency\mainloopscheduler\twistedscheduler.py”,第42行,在dispose中
句柄[0]。取消()
文件“C:\Program Files\Python\2.7\lib\site packages\twisted\internet\base.py”,第89行,取消
raise error.AlreadyCalled
twisted.internet.error.AlreadyCalled:尝试取消已调用的事件。
我做错了什么