Websocket Java Server.不发送消息也不接收

And*_*res 5 javascript java sockets websocket

我正在尝试创建一个Java WebSocket服务器,没有什么真正复杂的,只是一个小丑陋的小服务器,使用标准定义的api从浏览器尝试websockets.

我一直在阅读协议的规范,这很简单.我做了握手,显然它正在工作.

我用Java做的是:打开一个套接字,new Websocket("ws://...")从浏览器的JavaScript 接收请求,发送服务器的响应,创建"Sec-WebSocket-Accept".所有这些似乎都在起作用!谷歌Chrome开发人员工具向我显示连接成功...(这是图像)

连接

而且我做了一个ws.onopen = function(ev){ alert("Opened!!");,并且工作......(所以连接一定是正确的吗?).

但是现在,我正在尝试将数据从服务器发送到浏览器或浏览器到服务器,但没有任何反应......

要将数据从浏览器发送到服务器我只是做了一个ws.send("datos");,在服务器中我尝试阅读这个做一个readLine(in)存在in = clientSocket.getInputStream();......但没有......不工作......

并且要将数据从服务器发送到浏览器,我再做out.write(webSockFrame("data")getBytes())一次......在浏览器中没有任何反应...在浏览器中我正在等待数据做ws.onmessage = function(ev){....}...

(该webSockFrame(string)函数添加标准所需的两个字节,一个在字符串的开头,另一个在字符串的末尾.)

我还尝试使用telnet连接到服务器(检查服务器是否正常工作),它完美地工作,从telnet和服务器发送和接收数据...

我究竟做错了什么?

我正在使用最新版本的Chrome(14).

我不想构建一个繁重的并发服务器,只需要一点点尝试这项新技术.

更新:我不知道还有什么可以尝试...我做了一个netstat -a来查看连接是否真的是活动的,或者只是一个chrome的错误,但令我惊讶的是它存在并打开直到我关闭webserver ...我不知道为什么发送和ws.onmessage不起作用...

更新II:我更改了onopen事件上的文本,并更改​​了文本...并且还对文本进行了近距离更改,当我关闭服务器时,文本发生了更改...因此连接确实存在且onopen和onclose工作完美......

Rog*_*Gay 0

您可能首先想阅读Simple (Java, Javascript) start on Websockets 的答案。你的追求并不是一个新的追求。在Easy to Program WebSocket Server帖子中也有一些关于同一主题的讨论。有一个正在运行的演示,其中包含下载所有 javascript 代码(在服务器上运行)的链接。如果您想关注该博客(最后一个链接),那里应该发布有关 javascript 的完整教程 - 可能在本周。我今天有一个好的开始。另外,定期从扳手中选择关于 Google Chrome 来更新您的 chromium 浏览器。