2014-03-01 25 views
2

我有Flash应用程序,它是简单的异步,基于nodejs的Flash聊天。如何使服务器了解接收到的数据类型,反之亦然

情况是:服务器和客户端的所有数据都是相同的,只是一些文本。 我的问题是:如何让客户端发送特定数据,以便服务器了解数据是什么并运行特定功能。客户如何理解其获取的数据类型以及如何处理它。

例如:客户端发送消息“hello”,以便服务器知道这只是一个聊天消息。 然后客户端发送'awesome_btn_cliked',这是一些函数应该在服务器端进行处理,以便服务器了解并将结果数据发送回客户端。

客户端发送:hello =只是一个广播给所有客户端的消息。 将客户端'awesome_btn_clicked':function {1 + 1 = 2} - >结果广播给所有客户端。

就是这样的。我希望我完全解释我需要什么。

+1

您是否有权访问客户端和服务器源代码?为什么不简单地创建一个头部方案,其中消息的前两个字母表示源头。例如,“c:hello”c:可以被服务器解释为聊天消息。 “e:some_btn_click”将被解释为事件。冒号只是一个样本分隔符。你可以用任何你感觉的方式来格式化信息。另外,为什么不使用JSON并使用属性值来区分消息类型? –

+0

是的,我有访问权限。我一直在考虑使用“e:some_btn_click”风格。但是,你能告诉我更多关于如何使用JSON的吗?例如,开发一些简单的游戏类应用有什么更好的? – ValRus

+0

也可以从AS3发送原始JSON到nodejs套接字服务器吗? – ValRus

回答

0

您应该使用您的数据发送元数据,以便服务器了解它需要做什么。这意味着您正在定义所有客户端和服务器需要支持的协议。对于这两种不同的情况(无论是普通的聊天消息还是服务器需要执行的某些命令),您都可以推出自己的协议。但是在软件开发中,事情总是从小规模开始,并迅速增长。

你可能想看看XMPP这是一个基于XML的聊天消息协议。 http://xmpp.org/xmpp-protocols/

+0

现在它只是 - > ** socket.send (味精); **所以应该是 - > ** msg = +“HELLO WORLD”**? 我想XMPP对我来说太多了,即使它可能是答案。 – ValRus

+1

msg =“<数据类型='聊天'>”+“你好ValRus”+“” –

+0

你给1 + 1的有趣的例子,其中2需要被发送到所有其他客户端。为什么发送该功能的客户端应用程序不是发送“2”而是作为聊天消息? –

相关问题