通过 Websocket() 连接到 socket.io 服务器不起作用



这段代码运行良好,并连接到我正在运行的套接字服务器:

 var socket = io('http://localhost:8888');
  socket.on('news', function (data) {
    console.log(data);
    socket.emit('evento', { my: 'data' });
  });
socket.on('disconnect', function () {
   console.log('user disconnected');
  });
socket.on('connect', function () {
   console.log('user connect');
var data = 'ddsds';
       socket.emit('evento', { my: 'data' });

  });

另一方面,当我尝试使用WebSocket()时,它无法连接。这是不起作用的代码:

var socket = new WebSocket('ws://localhost:8888');
// Open the socket
socket.onopen = function(event) {
    // Send an initial message
    socket.send('I am the client and Im listening!');
}
    // Listen for messages
    socket.onmessage = function(event) {
        console.log('Client received a message',event);
    };
    // Listen for socket closes
    socket.onclose = function(event) {
        console.log('Client notified socket has closed',event);
    };
    socket.onerror = function(event) {
        console.log('error: ',event);
    };

这不是代码中的错误;我认为有一种不同的连接方式。我需要这个来使用WebSocket();。任何帮助都将不胜感激!!

socket.io是在WebSocket之上运行的东西(使用WebSocket作为其支持的传输之一)。它在WebSocket之上添加了新的语义,因此您不能将socket.io方法和事件直接用于WebSocket对象。

如果WebSocket传输可用,socket.io将选择它,因此您不需要使用第二个示例-第一个示例应该可以正常工作,并且将自动使用WebSocket(如果可用)。

请参阅这个答案和这个答案,了解如何使用socket.io的最小化、gzipped和缓存版本,使其更小、更快。

相关内容

  • 没有找到相关文章

最新更新