我正在使用该websockets库在Python 3.4中创建一个websocket服务器.这是一个简单的echo服务器:
import asyncio
import websockets
@asyncio.coroutine
def connection_handler(websocket, path):
while True:
msg = yield from websocket.recv()
if msg is None: # connection lost
break
yield from websocket.send(msg)
start_server = websockets.serve(connection_handler, 'localhost', 8000)
asyncio.get_event_loop().run_until_complete(start_server)
asyncio.get_event_loop().run_forever()
Run Code Online (Sandbox Code Playgroud)
假设我们 - 另外 - 想要在某些事件发生时向客户端发送消息.为简单起见,让我们每隔60秒定期发送一条消息.我们怎么做?我的意思是,因为connection_handler经常等待收到的消息,服务器只能在收到客户端的消息后才采取行动,对吗?我在这里错过了什么?
也许这种情况需要一个基于事件/回调的框架,而不是一个基于协同程序的框架?龙卷风?
有人知道 - 在Matplotlib中 - 如何使用半透明颜色生成外观漂亮的填充轮廓图?如果contourf()传递具有半透明颜色的色彩图,则会在填充区域之间产生小间隙:
根据文档,这不是一个错误(" contourf()[...]不绘制多边形边缘").要绘制边缘,建议"通过调用添加线条轮廓contour()".但是,由于边缘变得太不透明,这看起来并不好看:
你可以玩一下这个linewidth论点contour(),但这没什么用.有任何想法吗?
这是重现问题的代码(我使用面向对象的API,但结果是相同的pyplot):
import matplotlib
import numpy as np
from matplotlib.figure import Figure
from matplotlib.backends.backend_agg import FigureCanvasAgg
# generate some data
shape = (100, 100)
x_rng = np.linspace(-1, 1, shape[1])
y_rng = np.linspace(-1, 1, shape[0])
x, y = np.meshgrid(x_rng, y_rng)
z = np.sqrt(x**2 + y**2)
# create figure
width_inch, height_inch = 5, 5 # results in 500x500px with dpi=100
fig = …Run Code Online (Sandbox Code Playgroud) Pythonmultiprocessing模块有一个用于可重入/递归锁的类:
from multiprocessing import RLock
l = RLock()
l.acquire()
l.acquire()
l.release()
l.release()
Run Code Online (Sandbox Code Playgroud)
这对于从公共父进程分叉的进程非常有用,因此可以共享相同的RLock对象。但是,对于具有独立进程的情况(例如:Web 服务器 + cron 作业),需要一个命名锁。不幸的是,RLock()不接受锁的名称参数。有没有允许做这样的事情的解决方案?
l = RLock('mylock')
l.acquire()
l.release()
Run Code Online (Sandbox Code Playgroud)