如何将javascript中的socket.io客户端连接到C# Fleck.WebSocketServer

问题描述 投票:0回答:1

我尝试将 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。

我所知道的任何我错过的事情。或者我可以参考的任何想法/参考。

socket.io
1个回答
0
投票

您需要使用 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>
© www.soinside.com 2019 - 2024. All rights reserved.