我尝试将 javascript 中的 socket.io 客户端连接到 C# Fleck.WebSocketServer
C# 服务器
var server = new Fleck.WebSocketServer("ws://0.0.0.0:8284/socket.io");
server.Start(socket =>
{
socket.OnOpen = () => Console.WriteLine("Open!");
socket.OnClose = () => Console.WriteLine("Close!");
socket.OnMessage = message => socket.Send(message);
});
Javascript 客户端
const socket = io('ws://localhost:8284');
socket.on('connect', () => {
console.log('Connected to server');
});
但它一直返回 Err_Empty_Reponse。
我所知道的任何我错过的事情。或者我可以参考的任何想法/参考。
您需要使用 window.WebSocket 或 window.MozWebSocket 创建一个 Web 套接字。示例代码如下:
<script type="text/javascript">
var start = function () {
var inc = document.getElementById('incoming');
var wsImpl = window.WebSocket || window.MozWebSocket;
var form = document.getElementById('sendForm');
var input = document.getElementById('sendText');
inc.innerHTML += "connecting to server ..<br/>";
// create a new websocket and connect
window.ws = new wsImpl('ws://localhost:8284/');
// when data is coming from the server, this method is called
ws.onmessage = function (evt) {
inc.innerHTML += evt.data + '<br/>';
};
// when the connection is established, this method is called
ws.onopen = function () {
inc.innerHTML += '.. connection open<br/>';
};
// when the connection is closed, this method is called
ws.onclose = function () {
inc.innerHTML += '.. connection closed<br/>';
}
form.addEventListener('submit', function(e){
e.preventDefault();
var val = input.value;
ws.send(val);
input.value = "";
});
}
window.onload = start;
</script>
<body>
<form id="sendForm">
<input id="sendText" placeholder="Text to send" />
</form>
<pre id="incoming"></pre>
</body>