哪种技术最适合类似聊天的应用程序
Posted
技术标签:
【中文标题】哪种技术最适合类似聊天的应用程序【英文标题】:Which technique is best suited for chat-like app 【发布时间】:2014-12-16 15:43:42 【问题描述】:我想开发一个移动应用程序,注册用户可以在其中搜索其他注册用户。用户 A 可以与用户 B 聊天。用户 A 可以查看用户 B 的个人资料。在此之后,必须通知用户 B 用户 A 正在观看他。 所以它是某种聊天室,当用户观看/联系另一个用户时,服务器应该能够得到通知,并让后者知道这一点。 我的第一个想法是使用 node.js。但是我开始阅读很多关于 XMPP 协议的内容。你认为 XMPP 服务器更适合这种应用程序吗?我知道你可以自定义你的 xmpp 服务器,编写插件,这样它就可以按照你想要的方式运行。这是正确的吗?
【问题讨论】:
XMPP 对于简单的一对一聊天来说可能有点重。 Faye pub/sub 库可能更易于使用,并且支持私有通道、自动重新连接和 websockets、长轮询等。 【参考方案1】:这是使用 NodeJS 进行套接字 IO 的完美用例。事实上,我已经用不到 50 行代码实现了您所描述的 ios 客户端和节点后端。有关 iOS 库,请参阅 https://github.com/MegaBits/SIOSocket,有关 SocketIO,请参阅 http://socket.io/。
XMPP 更加繁重和冗长,当您可以一直使用 JSON 进行通信时,您将花费大量时间来解析/构建 XML。在这里看看我的回购:
https://github.com/alhill10/chatapp3/blob/master/View%20Control%20App/ChatView.m#L34
您可以在 viewDidLoad
方法中看到它只是打开一个 websocket 连接并监听来自服务器的事件,然后使用任何新的传入消息实时更新用作聊天窗口的 tableview。
然后,看这里https://github.com/alhill10/simplechat/blob/master/app.js 一个简单的 Socket IO 后端示例,它接收和中继消息,以及维护当前用户的在线状态。您可以简单地添加用户身份验证和。
【讨论】:
以上是关于哪种技术最适合类似聊天的应用程序的主要内容,如果未能解决你的问题,请参考以下文章
哪种 json 样式最适合 Android + iOS 应用程序
Wi-Fi P2P 是不是适合本地聊天发现应用程序(类似 Tinder)?