我正在尝试使用websocket-sharp创建一个简单的 C# websocket 服务器, 我遵循了官方指南,但我得到了一些特殊的回复。
C# 代码段
using System;
using WebSocketSharp.Server;
namespace WebSocketSharp
{
class MainClass
{
public static void Main(string[] args)
{
startServer();
}
public static void startServer()
{
var ws = new WebSocketServer(System.Net.IPAddress.Any, 8181);
ws.Start();
Console.WriteLine("Server started");
Console.ReadKey(true);
ws.Stop();
Console.WriteLine("Server stopped");
}
}
}
当我尝试将客户端 (HTML) 连接到服务器时,我收到一条消息
WebSocket 连接到“ws://127.0.0.1:8181/”失败:WebSocket 握手期间出错:意外响应代码:501
根据HTTP 协议,代码 501 表示
服务器不支持完成请求所需的功能。当服务器无法识别请求方法并且无法支持任何资源时,这是适当的响应。
这是我的客户端代码,我相信它符合请求方法。
<!doctype html>
<head>
</head>
<body>
<form>
<input id="textField1" type="text" style="margin: 0 5px; width: 200px; height: 40px;" placeholder="Enter data">
<button id="sendTextField1" type="button" class="btn btn-info">Send</button>
</form>
<script type="text/javascript">
var start = function () {
var wsImpl = window.WebSocket || window.MozWebSocket;
window.ws = new wsImpl('ws://127.0.0.1:8181/');
ws.onmessage = function (evt) {
console.log(evt.data);
};
ws.onopen = function () {
console.log("Connected");
};
ws.onclose = function () {
console.log("Closed");
};
document.getElementById("sendTextField1").onclick = function() {
sendToSocket(document.getElementById('textField1').value);
};
function sendToSocket(value){
console.log("Sending value to socket " + value + " ");
ws.send(value);
};
}
window.onload = start;
谁能告诉我我的错误在哪里?