要在 HTML 中实现基于 WebSocket 的在线聊天室,需要遵循以下步骤:
使用 JavaScript 中的 WebSocket 对象创建到服务器的连接。连接 URL 应该包含服务器的 IP 地址和端口号,例如:
<script>
var socket = new WebSocket("ws://192.168.1.100:8080");
</script>
监听 WebSocket 对象的 open、message、close 和 error 事件。open 事件在连接建立时触发,message 事件在接收到消息时触发,close 事件在连接关闭时触发,error 事件在发生错误时触发。
可以在事件处理程序中编写逻辑来处理不同的事件,例如:
<script>
// 监听 WebSocket 事件
socket.onopen = function(event) {
console.log("WebSocket 连接已建立!");
};
socket.onmessage = function(event) {
console.log("接收到消息:" + event.data);
};
socket.onclose = function(event) {
console.log("WebSocket 连接已关闭!");
};
socket.onerror = function(event) {
console.log("WebSocket 发生错误!");
};
</script>
使用 WebSocket 对象的 send 方法发送消息,使用 message 事件接收消息。发送的消息可以是文本、二进制数据或 Blob 对象。
在接收到消息后,可以将其显示在聊天室中,例如:
<script>
// 发送消息
function sendMessage() {
var msg = document.getElementById("message").value;
socket.send(msg);
}
// 接收消息
socket.onmessage = function(event) {
var msg = event.data;
var chatBox = document.getElementById("chat-box");
chatBox.innerHTML += "<p>" + msg + "</p>";
};
</script>
<!-- 聊天室界面 -->
<div id="chat-box"></div>
<!-- 发送消息表单 -->
<form onsubmit="sendMessage(); return false;">
<input type="text" id="message" />
<input type="submit" value="发送" />
</form>
以上是基本实现 WebSocket 聊天室的步骤,需要注意以下几点: