Connect to node.js socket.io server: clients don't connect - server reports" destroying non-socket.io upgrade"

I thought that socket.io would allow me to implement a websocket server. I have this very simple code:

// 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');
    });
});

I've tried a few different test clients all of which generate this message on the server: debug - destroying non-socket.io upgrade

One such client attempt has some code like this:

<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>

As soon as we load the page I get the debug message on the server.

I thought the point of this library was to support the websocket protocol and any client supporting websockets would be able to connect.

If I interpret the message literally it seems to indicate that server.io has detected that it is connecting to a "non socket.io" client. Does this mean that there is no way for me to connect to this server without using socket.io in the client?