gpt4 book ai didi

socket.io - Socket.io中io.on和socket.on的区别?

转载 作者:行者123 更新时间:2023-12-04 06:34:42 26 4
gpt4 key购买 nike

我对随函数传递的“socket”参数是什么感到困惑(在“谜”部分)。然后参数被使用'socket.on'。 io.on 和 socket.on 有什么区别?

以下代码稍微改编自 Socket.io 聊天应用程序示例。

变量

var http = require('http');
var express = require('express');
var app = express();
var server = http.createServer(app)
var io = require('socket.io').listen(server);

谜语
io.on('connection', function (socket) {
console.log('user connected');
socket.on('message', function(msg) {
console.log('message: ' + msg);
io.emit('message', msg);
})
});

启动服务器
server.listen(3000, function() {
console.log('server is running');
});

index.jade
body
script(src="/socket.io/socket.io.js")

form(method='post', action="/")
input(type='text', id='user', autocomplete='off')
input(type='submit', onClick="myFunc()")

strong messages:
p(id="messages")

script.
var socket = io();

socket.on('message', function(msg) {
console.log('client: ' + msg);
});

function myFunc() {
var text = document.getElementById('user');
socket.emit('message', text.value);
text.value = '';
};

最佳答案

在您的代码示例中,io是连接到 http.Server 实例的 Socket.IO 服务器实例监听传入事件。
socket connection的论据事件监听器回调函数是一个对象,表示来自客户端的传入套接字连接。

他们都可以使用 on 监听事件方法。

如果您像这样重新想象您的代码示例,它可能会帮助您直观地理解两者是如何分开的:

var connectionEvent = function(socket) {
console.log('user connected');
socket.on('message', function(msg) {
console.log('message: ' + msg);
io.emit('message', msg);
});
};

io.on('connection', connectionEvent);

关于socket.io - Socket.io中io.on和socket.on的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33703546/

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