我认为 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 的情况下连接到该服务器?