我正在尝试创建一个
Java WebSocket服务器,没有什么真正复杂的,只是一个小丑陋的小服务器,使用标准定义的api从浏览器尝试websockets.
我一直在阅读协议的规范,这很简单.我做了握手,显然它正在工作.
我用Java做的是:打开一个套接字,从浏览器的JavaScript接收来自新Websocket(“ws:// …”)的请求,发送服务器的响应,创建“Sec-WebSocket-Accept”.所有这些似乎都在起作用!谷歌Chrome开发人员工具向我显示连接成功…(这是图像)
而且我做了一个ws.onopen = function(ev){alert(“Opened !!”);这工作……(所以连接必须正确吗?).
但是现在,我正在尝试将数据从服务器发送到浏览器或浏览器到服务器,但没有任何反应……
要将数据从浏览器发送到服务器,我只需要执行ws.send(“datos”);在服务器中我尝试读取这个做一个readLine(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工作完美……