我正在编写一款消息分发系统。服务器使用 ColdFusion (CF) 10,并使用新的<cfwebsocket>功能集。客户端将使用 Delphi 2009 编写。
如果我在 ColdFusion 中编写客户端(使用<cfwebsocket>标签),则可以正常工作:我可以在两个客户端之间发送消息。因此,服务器端似乎正在工作。
但是,Delphi 客户端没有这样的运气。到目前为止,我已经尝试了两个组件库(Delphi on Rails和sgcWebSockets)。两者似乎都与 CF 服务器建立了连接,但未发送或接收消息。我相当确定 Delphi 正在连接到服务器,因为如果我指定正确的地址,则不会抛出异常,而如果我指定不同的端口或 URI,则会抛出异常。
我认为缺失的部分在于我的“通道”理解。在CF中很容易:您指定要订阅或发送消息的通道,然后它就会工作。但“通道”的概念似乎在ColdFusion之外并不存在太多。我已经搜索了w3.org、Google等,没有在HTML5 WebSocket规范中看到太多关于通道的内容。一些参考资料,但没有清晰的内容,特别是在示例中。
总之,我的问题如下:
1. “通道”是否是标准WebSocket API的一部分?如果是,
2. 我如何使用我提到的Delphi WebSocket库之一订阅通道?难道不应该像ws://[server]:[port]/[channel]这样简单吗?
3. 如何在CF服务器上调试WebSocket连接和流量?
非常感谢。这是我在StackOverflow上的第一篇文章;如果有点长,请见谅。
如果我在 ColdFusion 中编写客户端(使用<cfwebsocket>标签),则可以正常工作:我可以在两个客户端之间发送消息。因此,服务器端似乎正在工作。
但是,Delphi 客户端没有这样的运气。到目前为止,我已经尝试了两个组件库(Delphi on Rails和sgcWebSockets)。两者似乎都与 CF 服务器建立了连接,但未发送或接收消息。我相当确定 Delphi 正在连接到服务器,因为如果我指定正确的地址,则不会抛出异常,而如果我指定不同的端口或 URI,则会抛出异常。
我认为缺失的部分在于我的“通道”理解。在CF中很容易:您指定要订阅或发送消息的通道,然后它就会工作。但“通道”的概念似乎在ColdFusion之外并不存在太多。我已经搜索了w3.org、Google等,没有在HTML5 WebSocket规范中看到太多关于通道的内容。一些参考资料,但没有清晰的内容,特别是在示例中。
总之,我的问题如下:
1. “通道”是否是标准WebSocket API的一部分?如果是,
2. 我如何使用我提到的Delphi WebSocket库之一订阅通道?难道不应该像ws://[server]:[port]/[channel]这样简单吗?
3. 如何在CF服务器上调试WebSocket连接和流量?
非常感谢。这是我在StackOverflow上的第一篇文章;如果有点长,请见谅。