今天我在http://gonzalo123.com/2011/05/23/real-time-notifications-part-ii-now-with-node-js-and-socket-io/遵循Gonzalo Ayuso的教程,但无法发送消息 这是我的server.js
var http = require('http');
var io = require('socket.io');
server = http.createServer(function(req, res){
});
server.listen(8000);
//socket.io
var socket = io.listen(server);
socket.set('transports', ['websocket']);
console.log("Start");
socket.on('connection', function(client){
client.on('message', function(msg){
console.log(msg);
socket.broadcast(msg);
})
});
和client.html
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Comet Test</title>
</head>
<body>
<p><a id='customAlert' href="#" onclick='socket.send("customAlert")'>publish customAlert</a></p>
<p><a id='customAlert2' href="#" onclick='socket.send("customAlert2")'>publish customAlert2</a></p>
<script src="http://localhost:8000/socket.io/socket.io.js" type="text/javascript"></script>
<script type="text/javascript">
// Start the socket
var socket = io.connect('http://localhost:8000');
socket.on('message', function(msg){
console.log(msg);
});
</script>
</body>
</html>
我在服务器上运行了一点点编辑。但是客户端不向服务器发送消息。有谁能够帮我?抱歉我的英语不好。
我发现客户端无法连接到服务器,但我不知道为什么?
我的计算机正在使用apache服务器运行xampp。也许这是问题?
更新: 我刚刚将传输设置为xhr-polling并连接成功。为什么不接受websocket?
答案 0 :(得分:0)
您需要更仔细地阅读有关socket.io的教程 首先要调用一些事件,你需要发出事件名称:
socket.emit('my other event', { my: 'data' });
这意味着,你的onclick in anchor需要调用socket.emit ...,或者调用一些函数,如:
function call_my_event(name){
socket.emit(name,{my : 'data'});
}
答案 1 :(得分:0)
我发现了我的问题。这是关于我的计算机块websocket协议中的防火墙或代理或其他东西。我在另一台计算机上测试了该代码并且工作正常。所以我必须重新安装我的系统并且websocket可供我使用:D