websocket客户端到socket.io

我需要一个服务器能够接受来自websocket和socket.io客户端的连接,这是可能的吗? 当我运行的只是socket.io,也socket.io客户端工作正常,但标准的WebSocket客户端无法连接。 另一方面,当我与socket.io一起运行websocket服务器,websocket崇拜,但在浏览器,这是试图通过socket.io连接,我看到错误WebSocket connection to ... failed: Invalid frame header 。 是否有可能使两个连接在单个服务器实例上工作?

我正在使用express.io和websocket节点 ,这将是很好的让它只与express.oi工作。

虽然@ jfriend00是正确的,socket.io是在webSocket之上的附加协议,我发现附加的协议可能很简单。 我认为socket.io@2.0.3服务器隐式运行由ws@2.3.1驱动的WebSocket服务器,我设法(在F12 /networking工具的帮助下)使用本机WebSocket客户端连接到它。

socket.io客户端:

 var socket = io('http://localhost'); socket.emit('hello', 'there'); 

websocket客户端:

 var ws = new WebSocket('ws://localhost/socket.io/?EIO=3&transport=websocket'); ws.send('42' + JSON.stringify(['hello', 'there'])); // ws.onmessage will get a MessageEvent object with the data property being encoded in the similar way. 

Socket.IO API更抽象,它处理事件和参数,而WebSocket API处理string。