我正在用php设计一个使用websockets的聊天程序。在客户端,我想在两个不同的输出域中显示聊天和在线用户。由于聊天消息和在线用户是使用相同的socket_send()方法从服务器发送的,那么如何在客户端区分服务器是否发送了在线用户或聊天消息,当我在客户端接收到套接字的数据时,以便我可以在两个不同的输出字段中显示它们。
希望你能理解我想说的话。我在客户端使用javascript。
发布于 2013-03-07 21:35:58
在您的例子中,WebSocket连接类似于现实世界中的空气。WebSocket消息对应于声音。当人们发出声音时,这些声音通过空气传到别人的耳朵里。
然而,为了让我们理解别人的声音意味着什么,我们开发了一种可以称为通信协议的东西。我们开发了单词,并给它们一个发音。所以,发射器--人们能够将他们所想的转化为声音。接受声音的人能够将这些声音转化为意义。
到目前为止,您的客户机和服务器之间有air、WebSocket。你还可以发出声音(发送消息)。但到目前为止,两者都缺少一种通信协议,一种共同的理解。你必须提供这一点。别无他法。您将意识到这可能会成为一项相当复杂的任务。
尽管如此,扮演上帝并设计意义、声音(在你的例子中是“消息”)之间的转换规则,以及反过来的转换规则是很有趣的。
所以,去吧,发明一个协议。这是其他人所说的。您应该提出特定的对象类型,例如User和Message,您将为消息分配属性,例如sender和recipient。然后,您很可能会以某种形式对这些对象进行编码,将它们放入消息中,然后在客户端和服务器之间发送这些消息。
客户机和服务器都需要知道您的基本对象类型,并且需要知道对象在这些消息中是如何编码的。
https://stackoverflow.com/questions/15264145
复制相似问题