io() 函数前端——socket.io
Posted
技术标签:
【中文标题】io() 函数前端——socket.io【英文标题】:Io () function frontend - socket.io 【发布时间】:2017-04-16 12:13:20 【问题描述】:我不明白当我将io ()
函数调用到 index.html 时,nodejs 怎么可能知道必须执行io.on ()
函数。我知道 index.html 中的io ()
函数用于打开客户端和服务器之间的新连接......但我不明白客户端和服务器之间使用 socket.io 的通信。
可能是因为进入服务器,我需要socket.io,然后socket.io进入服务器监听最终请求执行on ()
函数。
但是为了做到这一点,套接字。 io必须获取整个http + express包才能监听客户端的请求……对吗?
谢谢大家 莫里斯
【问题讨论】:
【参考方案1】:不完全清楚你在问什么,但在客户端:
var socket = io();
是一个快捷方式:
var socket = io.connect();
这会尝试建立与加载当前网页的同一主机和端口的 socket.io 连接,并将表示该连接的对象存储在 socket
变量中。
但我不明白客户端和服务器之间的通信 使用 socket.io。
如果服务器正在侦听 socket.io 连接,则io()
将连接到该服务器。从那时起,客户端可以使用socket.on('someMsg', fn)
监听传入的消息,或者客户端可以使用socket.emit('someMsg, someData);
向服务器发送消息。
同样,服务器既可以侦听来自客户端的传入消息,也可以向客户端发送新消息。
但是为了做到这一点,套接字。 io必须获取整个http+express 用于监听客户端请求的包...对吗?
嗯,有点。如果您想要一个同时为您的网页提供服务并可以接受 socket.io 连接的 Web 服务器,那么您至少需要 http 模块(用于服务器)和 socket.io 模块(用于 socket.io 服务器)。如果您想要一个功能更全面的 Web 服务器,您可以在其中定义路由和许多其他功能,那么是的,您可以同时使用 Express 和 socket.io。
【讨论】:
以上是关于io() 函数前端——socket.io的主要内容,如果未能解决你的问题,请参考以下文章