Websocket聊天实现

时间:2014-07-22 15:43:18

标签: java javascript html5 java-ee websocket

我看到Websockets的大部分演示都是聊天室应用程序。我想知道是否有可能创建更多的即时消息实现。不同之处在于,在聊天室应用程序中,许多用户与每个人连接和共享消息,其中,在即时消息应用程序中,用户可以连接到他们选择的其他用户。

我希望它能在没有任何插件的情况下工作。我在客户端使用JavaScript,在服务器端使用Java EE。我期待能够更改端点URL,但似乎必须在编译时知道它。我还研究了在Session方法中使用onMessage对象但是如何知道我需要将消息发送到的用户的会话对象?而且我觉得循环遍历所有会话对象寻找正确的会话对象是一种缓慢的方法。那么,我怎样才能使用WebSockets创建一个类似应用程序的即时消息?

1 个答案:

答案 0 :(得分:0)

Websockets用于使用HTTP协议在服务器和客户端之间进行通信。

它们是任何跨语言/跨平台实时流/消息传递相关任务的特别合适的解决方案,因为客户端/消费者在任何新数据到达时立即得到通知,而无需轮询* *

浏览器实现规范的客户端部分。

大多数服务器端语言都有实现服务器部分的库。

如果您想要基本的即时消息,它就像常规聊天一样简单:您只需将聊天室中每个人的收件人列表更改为该对话的特定客户端。

如果你想建立一个生产级即时通讯应用程序,你应该知道你不必重新发明轮子:你可以在任何XMPP库之上构建你的信使应用程序或代码你自己的实现协议。无论哪种方式,它都会消除很大一部分设计负担,让您专注于GUI或您认为合适的任何扩展。

如果您对后者感兴趣。查看atmosphere(特别是他们的plugins and extensions)和这篇文章(它有点旧,但它是很好的介绍性内容):

http://jfarcand.wordpress.com/2010/11/08/using-jquery-xmpp-and-atmosphere-to-cluster-your-websocketcomet-application/

(**例如,如果您想使用RMI,则需要在服务器端和客户端都使用JVM,或者在CORBA支持中使用RMI-IIOP实现,这对于简单的任务来说非常麻烦。一些基于Comet的流行替代方案,它更多的是一组技术而不是W3C标准:它比websockets更难使用并且有一些限制,但具有使用传统技术和实现的好处实时通信,无需轮询,使用HTTP 1.1持久连接)