1

我认为 socket.io 可以让我实现一个 websocket 服务器。我有这个非常简单的代码:

// Require HTTP module (to start server) and Socket.IO
var http = require('http'), io = require('socket.io');

// start at port 8888
var server = http.createServer(function(req, res) {
    res.writeHead(200,{'Content-Type': 'text\html'});
    res.end('<h1>Welcome to the Notification Server</h1>'); 
});
server.listen(8888);

// Create Socket.io obj/pass to server
var socket = io.listen(server);

socket.on('connection', function(client) {
    console.log('Successful Websocket connection!');

    client.on('message', function(event) {
        console.log("Received message from client", event);     
    });

    client.on('disconnect', function() {
        console.log('Client has disconnected');
    });
});

我尝试了几个不同的测试客户端,所有这些客户端都在服务器上生成此消息: debug - destroying non-socket.io upgrade

一个这样的客户端尝试有一些这样的代码:

<html>
<script type="text/javascript">
<!---
window.WebSocket = window.WebSocket || window.MozWebSocket;

var ws = new WebSocket("ws://dev.ourserver.com:8888");

ws.onopen = function() {
    alert("Connected");
}

ws.onerror = function(error) {
    alert("Error:"+error);
}

// -->
</script>
<body>
</body>
</html>

一旦我们加载页面,我就会在服务器上收到调试消息。

我认为这个库的重点是支持 websocket 协议,任何支持 websockets 的客户端都可以连接。

如果我从字面上解释该消息,它似乎表明 server.io 已检测到它正在连接到“非 socket.io”客户端。这是否意味着我无法在客户端不使用 socket.io 的情况下连接到该服务器?

4

0 回答 0