使用Twisted框架的聊天服务器无法接收Flash客户端数据
我用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
,因为这个需求是属于 你 的子类的。