gpt4 book ai didi

javascript - Node.js 应用程序接收来自浏览器的发射,但浏览器不接收返回的发射

转载 作者:行者123 更新时间:2023-12-01 03:01:55 24 4
gpt4 key购买 nike

我似乎无法弄清楚为什么node.js服务器连接正常,并且从浏览器接收到emit(),但当我尝试从node.js返回emit()时,它无法到达浏览器。我在这里遗漏了什么吗?

控制台日志显示“测试已收到”,但不显示“测试已发送到浏览器”。

(index.php) 代码片段:

<script language="javascript" type="text/javascript">       
var socket = io.connect('https://www.example.com:2053', {secure: true});
socket.on('connect', function() {
socket.emit('join', '19AFA53df7715sfs484');
});


socket.on('testsend', function () {
console.log('Test Sent To Browser');
});

$(document).ready(function () {
$(this).on('click', '.mainlogo', function (e) {
e.preventDefault();
socket.emit('testrecieve');
});
});

</script>

套接字代码(pipe.js):

var fs = require('fs');

var options = {
ca: fs.readFileSync(__dirname + '/ca.pem'),
key: fs.readFileSync(__dirname + '/file.pem'),
cert: fs.readFileSync(__dirname + '/file.crt')
};

var express = require('express'),
app = express();

app.use(function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
next();
});

var https = require('https'),
server = https.createServer(options, app),
io = require('socket.io')(server, { origins: '*:*'});

server.listen(2053);

// routing
app.get('/', function (req, res) {
res.sendfile('/index.php');
});

io.sockets.on('connection', function (socket) {

socket.on('join', function(uauth){
socket.join('messages');
socket.join(''+uauth+'');
});

socket.on('testrecieve', function () {
socket.broadcast.emit('testsend');
console.log('Test Recieved');
});

});

最佳答案

问题是 socket.broadcast.emit 会将消息发送到除新创建的连接之外的所有其他客户端。这不是你想要的。您应该使用 socket.emit 来代替。

关于javascript - Node.js 应用程序接收来自浏览器的发射,但浏览器不接收返回的发射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46395118/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com