我可以使用socket.io-client连接到一个标准的websocket吗?

尝试使用socket.io-client连接到Go中编写的websocket服务器。 我已经使用节点WebSocket库( npm )成功连接了。 所以工作的Websocket代码如下所示:

goSocketPort = 6060 url = "ws://localhost:#{goSocketPort}/streamresults/" ws = new WebSocket(url) ws.on('open', -> log "socket opened" ) ws.on('message', (message) -> console.log('received: %s', message) #log "Socket message: #{JSON.stringify message}" ) 

很容易,它的工作原理 – 另一端的套接字以设定的频率发送消息。 但我最初尝试与socket.io-client ( npm ),只是不能得到它去。 它确实列出了websocket作为它的第一优先传输,但该死的,如果我能得到它连接:

 socket = ioClient.connect("#{url}", {port: goSocketPort, transports: ['xhr-polling', 'websocket']}) socket.on("connect", (r) -> log "connected to #{url}" ) 

连接永远不会发生,所以没有任何事件被激发,代码立即退出。 我试过了:把端口closures的url,并在选项中添加它,取消传输选项(这意味着根据文档“全部”),并使用HTTPurl。 socket-io.client无法连接到“标准”websocket?

根据我们的聊天,看起来你被这句话误导了:

socket.io客户端基本上是一个简单的HTTP Socket接口实现。 它看起来类似于WebSocket,同时提供了额外的function,并且在用户的浏览器不支持WebSocket时利用其他的传输。

这意味着从与Socket.io客户端/服务器交互的客户端/服务器代码的angular度来看,它看起来类似于WebSocket。 但是,networkingstream量与简单的WebSocket看起来有很大的不同 – 除了在WebSocket之上构build的更强大的协议之外,还有一个初始握手。 这里描述的握手和消息协议(都是指向Socket.IO协议规范的链接)。

如果你正在编写一个WebSocket服务器,除非你打算实现所有的Socket.io协议,否则最好使用纯WebSocket接口而不是Socket.io客户端。