在现代网页应用中,实时的聊天功能已经成为了必备的特性之一。为了方便开发者,@wasong/socket-chat 是一个专门用于构建实时聊天应用的 Node.js 包,它支持群聊和私聊,可以轻松地集成到你的应用中。
安装
在使用 @wasong/socket-chat 之前,你需要先在你的项目中安装该包。
npm install @wasong/socket-chat
初始化
在项目的入口文件中导入 @wasong/socket-chat,创建 SocketChat 实例。
const SocketChat = require('@wasong/socket-chat'); const socketChat = new SocketChat();
配置
SocketChat 实例需要先进行配置才能正常使用。以下是默认配置及其含义:
{ port: 8080, path: '/socket.io' }
如果你需要修改默认配置,可以在创建 SocketChat 实例时传入一个包含配置选项的对象。例如:
const socketChat = new SocketChat({ port: 3000, path: '/my-socket-io' });
使用
SocketChat 实例可以监听以下事件:
connect
客户端与服务器建立连接时触发。
socketChat.on('connect', socket => { console.log(`Socket ${socket.id} connected.`); });
disconnect
客户端与服务器断开连接时触发。
socketChat.on('disconnect', socket => { console.log(`Socket ${socket.id} disconnected.`); });
joinRoom
客户端加入一个房间时触发。
socketChat.on('joinRoom', (socket, room) => { console.log(`Socket ${socket.id} joined room ${room}.`); });
leaveRoom
客户端离开一个房间时触发。
socketChat.on('leaveRoom', (socket, room) => { console.log(`Socket ${socket.id} left room ${room}.`); });
message
客户端发送消息时触发。
socketChat.on('message', (socket, message) => { console.log(`Socket ${socket.id} sent message: ${message}.`); });
privateMessage
客户端发送私聊消息时触发。
socketChat.on('privateMessage', (socket, message, toSocket) => { console.log(`Socket ${socket.id} sent private message to ${toSocket.id}: ${message}.`); });
error
服务端发生错误时触发。
socketChat.on('error', error => { console.error(`Error occurred: ${error.message}.`); });
start
SocketChat 实例成功启动时触发。
socketChat.on('start', () => { console.log(`SocketChat server started on port ${socketChat.config.port}.`); });
stop
停止 SocketChat 实例时触发。
socketChat.on('stop', () => { console.log(`SocketChat server stopped.`); });
发送消息
使用 socketChat.sendMessage()
方法可以向所有房间中的客户端广播消息。
socketChat.sendMessage('Hello, everyone!');
使用 socketChat.sendPrivateMessage()
方法可以向指定的客户端发送私聊消息。
socketChat.sendPrivateMessage('Hello, Bob!', bobSocket);
加入/离开房间
使用 socketChat.joinRoom()
方法可以让指定客户端加入一个房间。
socketChat.joinRoom(socket, 'main-room');
使用 socketChat.leaveRoom()
方法可以让指定客户端离开一个房间。
socketChat.leaveRoom(socket, 'main-room');
完整示例
-- -------------------- ---- ------- ----- ---------- - ------------------------------- ----- ---------- - --- ------------ ----- ----- ----- --------------- --- ------------------------ ------ -- - ------------------- ------------ ------------- --- --------------------------- ------ -- - ------------------- ------------ ---------------- --- ------------------------- -------- ----- -- - ------------------- ------------ ------ ---- ----------- --- -------------------------- -------- ----- -- - ------------------- ------------ ---- ---- ----------- --- ------------------------ -------- -------- -- - ------------------- ------------ ---- -------- -------------- --- ------------------------------- -------- -------- --------- -- - ------------------- ------------ ---- ------- ------- -- --------------- -------------- --- ---------------------- ----- -- - -------------------- --------- -------------------- --- ---------------------- -- -- - ----------------------- ------ ------- -- ---- ----------------------------- --- --------------------- -- -- - ----------------------- ------ ----------- --- ------------------------------ ------------ ----- --------- - ------------------------- -- ---- --- -------------- ------------------------------------- ------ ----------- --------------------------- ------------- ---------------------------- -------------
以上就是 @wasong/socket-chat 的使用教程。希望这篇文章可以帮助你轻松地构建实时聊天应用程序。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600668edd9381d61a3540cab