我在网上看到了很多变化,但似乎没有什么对我有用。如何获得socket.io 1.3.5并表达4.12.2工作?
这就是我现在所拥有的。我得到的错误是404,因为服务器无法提供/socket.io/socket.io.js
。
app.js:
var app = express();
var server = require('http').createServer(app);
var io = require('socket.io').listen(server);
io.on('connection', function (socket) {
console.log('connected');
});
index.hjs:
<script src="/socket.io/socket.io.js"></script>
<script>
var socket = io.connect();
socket.on('news', function (data) {
console.log(data);
});
</script>
注意:我也尝试过使用cdn <script src="https://cdn.socket.io/socket.io-1.3.5.js"></script>
,但没有成功。
答案 0 :(得分:4)
要使用带有express的socket.io,我们需要对默认没收事件进行一些更改。
app.js:
var app = require('express')();
app.get('/', function (req, res) {
res.sendfile(__dirname + '/index.html');
});
module.exports = app;
io.js
var io = require('socket.io')();
io.on('connection', function (socket) {
socket.emit('news', { hello: 'world' });
socket.on('my other event', function (data) {
console.log(data);
});
});
module.exports = io;
仓/ WWW:
var app = require('../app');
var io = require('../io');
var server = require('http').Server(app);
io.attach(server);
server.listen(8080);
现在对于索引模板,你应该使用如下
<script src="/socket.io/socket.io.js"></script>
<script>
$(document).ready(function(){
var socket = io();
socket.on('news', function (data) {
console.log(data);
});
});
});
</script>
它是一个有效的代码..
由于