即时聊天

Express+Socket.IO 搭建即时聊天

隐身守侯 提交于 2019-12-07 13:06:59
技术栈是:nodejs express socketio bootstrap sqlite 由于初学,代码排版模块化实现的不好,只是提供了一个功能。 源码地址: https://github.com/Qquanwei/Wire 运行node server.js后即提供了一个端口号为8080的服务 初始打开的时候显示如下 创建一个会话ID,如果该ID没有人创建过的话则直接创建成功,然后跳转到聊天界面。当然也可以通过连接按钮连接到已经创建好的聊天室中。 聊天界面如下 一个普通的聊天界面。 不安全因素就是在你聊天的时候可能被其他人乱入,因为没有提供验证机制,所以可以通过创建一些奇妙的会话ID来减少这种情况发生的可能性。 当然可以用中文,只要你把ID提供给你的朋友们,你们就可以一起happy的聊天了。 来源: oschina 链接: https://my.oschina.net/u/870108/blog/598446

详解Zoosk千万用户实时通信背后的开源技术[转]

南笙酒味 提交于 2019-12-05 02:23:24
http://www.csdn.net/article/2012-09-10/2809790-zoosk-the-engineering-behind-real-time 摘要: Zoosk是一个具有5000万会员的浪漫的社交约会网站,为了更好的让用户体验实时通信,让他们获得更有价值的消息,公司对实时通信背后的技术进行了深入开发。本文就是其开发工程副总裁Peter Offringa所写,主要讲述了Zoosk背后的实时通信技术。 导语: 本文由Zoosk(一个具有5000万会员的浪漫的社交约会网站)工程副总裁Peter Offringa所写,讲述了Zoosk的实时通信技术。 当我们的会员从Zoosk获得的最有价值的消息时,他们可以实时进行交互。毕竟,每个用户其连接的另一端都可能在未来产生关系。这种情况的兴奋和丰富才能充分实现实时。该套件的Zoosk服务促进这些交互一般被描述为实时通信(RTC)。这些通信交付使用XMPP协议,其他流行的即时通信产品也使用该协议。Zoosk的会员在三个不同的相互作用中体验实时通信: 存在 。当一个成员正在积极地连接到 Zoosk RTC的基础设施时,其公共的状态将显示为“可用”。如果他们一段时间内均处于空闲状态,它们的状态过渡到“离开”。他们关闭或断开连接的客户端应用程序时,他们的存在将自动更改为“离线”。会员还可以选择显示“隐身”的状态呈现给其他用户

移动 IM 学习笔记[转]

馋奶兔 提交于 2019-11-30 08:23:05
转: http://ruby-china.org/topics/22530 最近在看移动IM相关的资料, 然后发现网上有很多的资料,所以在学习过程中,整理了一些笔记, 供那些 想了解 移动IM的童鞋一些参考。 移动IM技术选型要点 1、协议选型 2、IM 服务器选型 3、协议和IM服务器改造 4、移动IM常见问题以及一些解决方案 5、一些第三方服务 一、常用的IM协议 二、IM 服务器的选择 经过这几天在网上的调研, 发现目前比较流行的几个IM 服务器 也就是 Openfire、Tigase, Ejabberd: 备注: 详解Zoosk千万用户实时通信背后的开源技术 三、XMPP协议的问题及改进 1、登录握手部分改进 Xmpp QuickStart 2、心跳改进 原先Xmpp使用的Ping/Pong 40+字节, 改进为单向 white space ping, 4字节。 备注: 心跳单向四个字节,在Xmpp协议下,估计应该是极限了吧。在私有协议协议下,一来一往两个字节足够。 3、文件传输 - Xmpp 的文件传输采用的点对点的传输; 改进为http 上传到server - 语音、视频压缩上传 - 图片默认下载缩略图 4、Presense 移动互联网环境下,不管用户是否在线, 都会假设 用户永远在线。 这是因为移动网络环境导致, 比如从wifi 切换到 3G、处于地铁