Javascript 套接字(失败:WebSocket 握手期间出错:net::ERR_CONNECTION_RESET)
Javascript Sockets (failed: Error during WebSocket handshake: net::ERR_CONNECTION_RESET)
我正在尝试创建一个简单的程序,以纯文本形式向套接字发送消息。发件人是javascript中使用websocket的网页,服务器是C程序。我对 C 代码没有任何控制权,但代码所有者向我保证,我可以使用简单的 javascript 来发送消息。我的代码如下:
<!DOCTYPE HTML>
<html>
<head>
<script type="text/javascript">
//initialize the websocket ws
var ws;
//Open the socket connection
function openSock() {
//test for Websocket compatibility in the browser
if ("WebSocket" in window) {
// log socket attempt
console.log("Attempting to open socket!");
//open web socket ws
ws = new WebSocket("ws://192.168.6.222:11000/echo");
} else { // else the browser doesn't support WebSocket
//Websocket is not supported
alert("APS NOT supported by your Browser!");
}
}
//send the command to socket ws
function sendCommand() {
console.log("Attempting to Send Message");
ws.send("your message here");
}
//close the socket ws
function closeSock() {
console.log("Closing Socket");
// close socket ws
ws.close();
}
</script>
</head>
<body>
<div id="sse">
<a href="javascript:openSock()"><input type=submit value="open"></a>
<a href="javascript:sendCommand()"><input type=submit value="send"></a>
<a href="javascript:closeSock()"><input type=submit value="close"></a>
</div>
</body>
</html>
当我点击连接按钮时,我得到了这个错误:
WebSocket connection to 'ws://192.168.6.222:11000/echo' failed: Error during WebSocket handshake: net::ERR_CONNECTION_RESET
我检查了防火墙,端口似乎是开放的。在花了相当多的时间对服务器进行故障排除(确保它是 运行 并且在网络上等)之后,我想知道我是否对这个客户端代码做错了什么。
根据我有限的知识和阅读,我所做的看起来是正确的,但欢迎任何帮助。
连接的服务器端是什么样的?
也许您正在使用不提供有效握手的错误 WebSocket Lib。
因为在针对 ws://echo.websocket.org 测试客户端时,一切似乎都运行良好。这强烈表明 websocket 客户端不是问题的根源。
这可能已经太晚了,但我只是 运行 在使用 Django 频道时遇到了类似的问题。我通过在 URL.
的末尾添加斜杠 (/
) 来修复它
ws = new WebSocket("ws://192.168.6.222:11000/echo/");
确保您的队列 运行 正确,在我的情况下就是问题所在
我正在尝试创建一个简单的程序,以纯文本形式向套接字发送消息。发件人是javascript中使用websocket的网页,服务器是C程序。我对 C 代码没有任何控制权,但代码所有者向我保证,我可以使用简单的 javascript 来发送消息。我的代码如下:
<!DOCTYPE HTML>
<html>
<head>
<script type="text/javascript">
//initialize the websocket ws
var ws;
//Open the socket connection
function openSock() {
//test for Websocket compatibility in the browser
if ("WebSocket" in window) {
// log socket attempt
console.log("Attempting to open socket!");
//open web socket ws
ws = new WebSocket("ws://192.168.6.222:11000/echo");
} else { // else the browser doesn't support WebSocket
//Websocket is not supported
alert("APS NOT supported by your Browser!");
}
}
//send the command to socket ws
function sendCommand() {
console.log("Attempting to Send Message");
ws.send("your message here");
}
//close the socket ws
function closeSock() {
console.log("Closing Socket");
// close socket ws
ws.close();
}
</script>
</head>
<body>
<div id="sse">
<a href="javascript:openSock()"><input type=submit value="open"></a>
<a href="javascript:sendCommand()"><input type=submit value="send"></a>
<a href="javascript:closeSock()"><input type=submit value="close"></a>
</div>
</body>
</html>
当我点击连接按钮时,我得到了这个错误:
WebSocket connection to 'ws://192.168.6.222:11000/echo' failed: Error during WebSocket handshake: net::ERR_CONNECTION_RESET
我检查了防火墙,端口似乎是开放的。在花了相当多的时间对服务器进行故障排除(确保它是 运行 并且在网络上等)之后,我想知道我是否对这个客户端代码做错了什么。
根据我有限的知识和阅读,我所做的看起来是正确的,但欢迎任何帮助。
连接的服务器端是什么样的? 也许您正在使用不提供有效握手的错误 WebSocket Lib。
因为在针对 ws://echo.websocket.org 测试客户端时,一切似乎都运行良好。这强烈表明 websocket 客户端不是问题的根源。
这可能已经太晚了,但我只是 运行 在使用 Django 频道时遇到了类似的问题。我通过在 URL.
的末尾添加斜杠 (/
) 来修复它
ws = new WebSocket("ws://192.168.6.222:11000/echo/");
确保您的队列 运行 正确,在我的情况下就是问题所在