繁体   English   中英

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

[英]Websocket Java Server. Not sending message nor receiving

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

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

我用Java做的是:打开一个套接字,从浏览器的JavaScript接收来自new Websocket("ws://...")的请求,发送服务器的响应,创建“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工作完美......

请参阅: 奇怪的websocket行为:仅在关闭选项卡时发送数据

我刚刚在C中使用websocket服务器。成功写入/发送握手头响应后,我尝试通过浏览器或从服务器向浏览器发送一些数据,但没有任何反应! 我想也许我做错了什么并重新阅读websockets的规格但无法解决问题! 当我看到你的帖子时,我决定测试你的说法,你是对的! 也许chrome还是模糊的websockets。 我将尝试实现新的帧包装消息,并查看客户端(浏览器)是否接收到我的数据。 同时,在关闭选项卡或窗口之前,浏览器看起来不会刷新数据...奇怪!

您可能首先想要在Websockets上阅读Simple(Java,Javascript)start的答案。 你的任务不是新任务。 易于编程WebSocket服务器的帖子中也有一些关于同一主题的聊天。 有一个正在运行的演示链接下载所有的JavaScript代码(运行在服务器上)。 如果你想关注那个博客(最后一个链接),那么应该有一个关于javascript方面的完整教程 - 可能是本周。 我今天开了个好头。 此外,定期从扳手中选择“关于Google Chrome”以更新您的Chrome浏览器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM