我在这里束手无策,因此非常感谢任何帮助。
我正在尝试通过 socket.io 从我的客户端(网页)向我的 Node.JS 服务器发送或发出消息。这是在作为 localhost 运行的 Windows 7 上。
确切的问题是:
- 我可以很好地从服务器向客户端发送消息。
- 从客户端向服务器发送消息不起作用:(
服务器代码:
// create http server
var app = require('http').createServer(httpHandler);
// socket.io
var io = require('socket.io').listen(app);
var port = 8080;
app.listen(port);
console.log('Server running at http://127.0.0.1:' + port);
// socket connection handler
io.sockets.on('connection', function (client) {
// this works great:
client.emit('text_msg', {msg: 'Welcome you are now connected.'});
// plain message - this never works :(
io.sockets.on('message', function(data){
console.log("*************************** message : " + data.txt);
});
});
这是一些客户端代码:
<script src="/socket.io/socket.io.js"></script>
...snip...
var socket = io.connect( 'http://localhost' );
socket.emit('message', {txt:"test"});
socket.on('text_msg', function (data) {
alert( data.msg );
});
我试过以下浏览器:
- 铬 18 (Windows 7)
- 火狐 11 (Windows 7)
- 互联网浏览器 9 (Windows 7)
从 NodeJS 输出中,我可以看到 Chrome 和 Firefox 都使用 Websockets,而 IE9 使用“htmlfile”。
NodeJS 是 0.6.15 版本
npm 列表如下所示:
├── node-static@0.5.9
└─┬ socket.io@0.9.6
├── policyfile@0.0.4
├── redis@0.6.7
└─┬ socket.io-client@0.9.6
├─┬ active-x-obfuscator@0.0.1
│ └── zeparser@0.0.5
├── uglify-js@1.2.5
├─┬ ws@0.4.13
│ ├── commander@0.5.2
│ └── options@0.0.3
└── xmlhttprequest@1.2.2
感谢您的任何帮助。