在另一个终端上, $ curl localhost:3001
但是,在nodejs服务器端,
我从没看见过
<{p}} "sdfsdf"
console.log("sdfsdf");
问题
1有些专家可以解释原因吗?
2如何修复它以便连接&#39;回调是否被触发?
谢谢。
var express = require('express'),
http = require('http')
var app = express();
var server = http.createServer(app);
//var server = http.Server(app);
//server.listen(app.get('port'), function () {
server.listen(3001, function () {
//logger.info('openHAB-cloud: express server listening on port ' + app.get('port'));
console.log("3001");
});
app.get('/', function(req, res){
//res.sendfile('index.html');
res.send("xxx");
});
io = require('socket.io').listen(server);
io.on('connection', function(socket) {
console.log("sdfsdf");
});
答案 0 :(得分:0)
要连接到socket.io服务器,您必须使用socket.io客户端 - 您不能只使用常规curl或http请求。
socket.io客户端必须专门设计为连接到socket.io服务器。这意味着它在webSocket之上使用socket.io消息格式,它遵循socket.io和webSocket用于连接的正确约定。
以下是一些客户端示例:https://socket.io/docs/client-api/
可以从包含相应socket.io库的浏览器Javascript或使用来自其他Javascript环境的任何socket.io客户端库进行连接。
要了解webSocket连接(socket.io使用的连接),您可能需要阅读:How does WebSockets server architecture work?。然后,socket.io在webSockets上添加自己的消息层。
答案 1 :(得分:0)
const io = require('socket.io-client');
const socket = io('http://localhost:3001');