我正在使用nodejs并表达socket.io,试图建立连接,但未调用io.on()
方法。
请在下面查看我的代码。
var express = require('express');
var app = express();
var http = require('http');
var server = http.createServer(app);
server.listen(process.env.PORT || '3000', function () {
console.log('server listens on port 3000');
});
var io = require('socket.io')(http);
io.listen(server);
io.on('connection', function(socket) {
console.log('Client connected!');
socket.on('message', function (data) {
console.log('Sending update!');
socket.emit('update', 'Working!');
});
});
答案 0 :(得分:0)
使用var io = require('socket.io')(server);
而不是var io = require('socket.io')(http);
更新的代码
var express = require("express");
var app = express();
var http = require("http");
var server = http.createServer(app);
var io = require("socket.io")(server);
io.on("connection", function (socket) {
console.log("Client connected!");
socket.on("message", function (data) {
console.log("Sending update!");
socket.emit("update", "Working!");
});
});
server.listen(process.env.PORT || "3000", function () {
console.log("server listens on port 3000");
});
以下是测试套接字io连接的代码
var socket = require("socket.io-client")("http://localhost:3000");
socket.on("connect", function () {});
socket.emit("message", function (data) {});
socket.on("update", function (data) {
console.log(data);
});
答案 1 :(得分:0)
尝试一下
var app = require('express')();
var server = require('http').Server(app);
var io = require('socket.io')(server);
app.get('/', function(req, res) {
res.sendFile(__dirname + '/index.html');
});
io.on('connection', function(socket) {
socket.on('event', function(data) {
console.log('A client sent us this dumb message:', data.message);
});
});
server.listen(8080);
前端
<script src="/socket.io/socket.io.js"></script>
<script>
var socket = io.connect('/');
socket.emit('event', { message: 'Hey, I have an important message!' });
</script>