这段代码运行良好,并连接到我正在运行的套接字服务器:
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和缓存版本,使其更小、更快。