擅长:python、mysql、java
<p>所有这些只需要创建<code>BoxesServer.channelClass</code>类属性。它只是对另一个类的引用。你知道吗</p>
<p>你为什么要这么做?嗯,<code>PodSixNet.Server.Server</code>是灵活的,它不硬编码它将用来为新连接创建通道的类。相反,它将查找<code>self.channelClass</code>属性,并使用该属性创建新的通道实例。参见<a href="https://github.com/chr15m/PodSixNet/blob/master/PodSixNet/Server.py#L22-L35" rel="nofollow">^{<cd4>} method source</a>:</p>
<pre><code>self.channels.append(self.channelClass(conn, addr, self, self._map))
</code></pre>
<p>调用<code>self.channelClass()</code>然后创建分配给该属性的任何类的实例。这使您可以在定义新的子类时轻松地交换channel类。你知道吗</p>
<p>注意,<code>PodSixNet.Server.Server()</code>类在创建实例时也可以将channel类作为参数。然后将覆盖您设置的类属性。你知道吗</p>