使用Twisted框架的聊天服务器无法接收Flash客户端数据

1 投票
2 回答
937 浏览
提问于 2025-04-15 14:40

我用Python的Twisted框架开发了一个聊天服务器。用Telnet客户端连接时一切正常。但当我用Flash客户端连接时,就出现了问题……

(这个Flash客户端在我之前的PHP聊天服务器上运行得很好,我重写了服务器,用Python来提高性能)

Flash客户端和Twisted服务器之间的连接已经建立:XMLSocket .onConnect返回TRUE。所以这不是权限问题,和策略文件没关系。

我无法通过Flash客户端使用XMLSocket的send()函数发送任何消息,服务器端什么也收不到。我尝试用'\n'、'\n\0'或'\0'来结束这些消息,但都没有成功。

你有什么线索吗?

2 个回答

0

我发现,Twisted这个库默认使用的行分隔符是'\r\n'。你可以在自己的子类中通过以下方式来修改这个分隔符:

LineOnlyReceiver.delimiter = '\n'

1

改变 LineOnlyReceiver.delimiter 是个很糟糕的主意,因为这会影响到所有的 LineOnlyReceiver 实例(除非它们在子类或者实例中自己进行了更改)。如果你不小心使用了这样的代码,可能会导致程序出错。

你应该在自己的 LineOnlyReceiver 子类中设置 delimiter,因为这个需求是属于 的子类的。

撰写回答