我正在使用socket.io和nodejs创建我的第一个应用程序,就像socket.io官方网站所说的那样,但是我在运行节点server.js后在html上看到的唯一一件事是“欢迎来到socket.io”。我怎样才能解决这个问题?或者为什么会这样?
代码如下:
index.html
<script src="http://my.page/node_modules/socket.io/lib/socket.io.js"></script>
<script>
var socket = io.connect('http://abogados.pages/');
socket.on('news', function (data) {
console.log(data);
socket.emit('my other event', { my: 'data' });
});
</script>
server.js
var io = require('socket.io').listen(80);
io.sockets.on('connection', function (socket) {
socket.emit('news', { hello: 'world' });
socket.on('my other event', function (data) {
console.log(data);
});
});
我真的很感激任何答案,因为如果没有,我不能从socket.io开始!
答案 0 :(得分:10)
欢迎来到socket.io!
1.您应该像这样添加socket.io js文件,
<script src="/socket.io/socket.io.js"></script>
您无需处理实际文件。 socket.io
将关注此问题
Hello world将记录在您的浏览器控制台中,而不是在您的文档中。使用Firebug或dev工具检查出来。
要自己做一些事情,从浏览器发出事件,然后使用socket.on('your event', function(){})
和console.log从客户端收到的数据。
我也是node和socket.io的新手! :)
答案 1 :(得分:1)
这将完美运作!!
<强>的index.html 强>
<script src="/socket.io/socket.io.js"></script>
<script>
var socket = io.connect('http://localhost');
socket.on('news', function (data) {
console.log(data);
//socket.emit('my other event', { my: 'data' }); // Line A
});
socket.emit('my other event', { my: 'data' }); //Line B
</script>
<强> server.js 强>
var io = require('socket.io').listen(80);
io.sockets.on('connection', function (socket) {
socket.emit('news', { hello: 'world' });
socket.on('my other event', function (data) {
console.log(data);
});
});
也许,用A行替换B行就可以了。不知道为什么socket.io没有检查他们的例子。就是这样,因为socket.emit()是独立调用而且不会以某种方式触发到期对于服务器的新事件。尚未知道,但我能够获得所需的输出。