package main
import (
"code.google.com/p/go.net/websocket"
"fmt"
"log"
"net/http"
"html/template"
)
func Echo(ws *websocket.Conn){
var err error
for{
fmt.Println("start")
var reply string
if err = websocket.Message.Receive(ws, &reply); err != nil{
fmt.Println("can't receive")
break
}
fmt.Println("received back from client:"+ reply)
msg := "Received : " + reply
fmt.Println("Sending to cient: " + msg)
if err = websocket.Message.Send(ws, msg); err != nil{
fmt.Println("Can't send")
break
}
}
}
func chat(w http.ResponseWriter, r *http.Request){
r.ParseForm()
fmt.Println(r.Form)
t,_ := template.ParseFiles("websocket_demo.html")
t.Execute(w, nil)
}
func main(){
http.Handle("/", websocket.Handler(Echo))
http.HandleFunc("/chat", chat)
if err := http.ListenAndServe(":9999", nil); err != nil{
log.Fatal("ListentAndServe:", err)
}
}
==========================================================================================
<html>
<head>
<body>
<script type="text/javascript">
var sock = null;
var wsuri = "ws://127.0.0.1:9999";
window.onload = function(){
console.log("onload");
sock = new WebSocket(wsuri);
sock.onopen = function(){
console.log("connected to " + wsuri);
}
sock.onclose = function(e) {
console.log("connection closed (" + e.code + ")");
}
sock.onmessage = function(e){
console.log("message received:" + e.data);
}
};
function send(){
console.log("send")
var msg = document.getElementById('message').value;
console.log(msg)
sock.send(msg);
};
</script>
<h1> Websocket Echo Test</h1>
<form>
<p>
Message: <input id = "message" type = "text" value ="hello dumx">
</p>
</form>
<button onclick="send();">Send Msg</button>
</body>
</head>
</html>
分享到:
相关推荐
1. **WebSocket路由设置**:Golang的`net/http`库用于设置HTTP服务器,同时使用`gorilla/websocket`库(一个流行的Golang WebSocket库)来处理WebSocket升级请求。在`main`函数中,会定义一个HTTP路由,当客户端发起...
《HTML5 WebSocket权威指南》是HTML5 WebSocket领域最权威的著作之一,它系统、全面地讲解了HTML5 WebSocket的各个方面,是Web开发人员和架构师学习WebSocket的最佳选择。书中讨论了基于WebSocket的架构师如何减少...
资源名称:HTML5 WebSocket权威指南内容简介:《HTML5 WebSocket权威指南》是HTML5 WebSocket领域最权威的著作之一,它系统、全面地讲解了HTML5 WebSocket的各个方面,是Web开发人员和架构师学习WebSocket的最佳选择...
这个`java websocket 后台JAR包`可能包含了上述所有或部分功能,它简化了WebSocket应用的开发,让开发者能专注于业务逻辑,而不是底层通信细节。在实际项目中,结合这个JAR包和其他相关工具,你可以构建出高效、稳定...
在本文中,我们将深入探讨如何使用Golang语言和beego框架构建一个基于Websocket的即时聊天应用程序。beego是一个强大的Go Web开发框架,它提供了一种简洁的方式来快速搭建Web应用,而Websocket则是一种在客户端和...
dSock dSock是分布式WebSocket代理(在Go中,使用Redis)。 客户端可以进行身份验证和连接,并且您可以将文本/二进制消息作为API发送。 功能每个用户具有多个客户端和身份验证dSo dSock dSock是分布式WebSocket...
WebSocket是HTML5的一项重要技术,它为Web应用提供了全双工、低延迟的通信机制,使得浏览器和服务器之间可以实时交换数据,非常适合构建实时交互的聊天应用。在本项目中,我们将探讨如何利用HTML5的WebSocket特性,...
在本文中,我们将深入探讨如何使用Golang实现腾讯云小程序WebSocket信道服务,以及如何与后端HTTP服务器协同工作。这个项目,名为"mp_websocket_tunnel",是为了解决小程序与服务器之间的实时通信问题,特别是在腾讯...
WebSocket是HTML5中引入的一种全双工通信协议,它允许Web应用和服务端进行持久性的双向通信,打破了传统的HTTP请求-响应模式。WebSocket协议基于TCP,提供了低延迟、高效率的数据传输方式,尤其适用于实时交互应用,...
为了使用这些库实现WebSocket功能,你需要在项目中导入这些jar包,并根据WebSocket API创建服务器端的WebSocket端点(实现WebSocketServerEndpointConfig接口)和客户端的WebSocket连接(使用WebSocketClient)。...
websocket-golang-chat, 使用golang和 web sockets进行简单聊天 这是一个使用golang和 web sockets的简单网络聊天应用程序的演示。这需要去 web socket包,以获取包go get code.google.com/p/go.net/websocket获取...
WebSocket是一种在客户端和服务器之间建立持久连接的网络通信协议,它是HTML5标准的一部分,旨在解决传统的HTTP协议在实现实时通信时效率低下的问题。WebSocket允许双向通信,即服务器和客户端都可以主动发送数据,...
WebSocket API在HTML5中引入,为开发人员提供了一种简单的方式来创建实时交互的应用程序,如在线游戏、股票交易平台、聊天应用等。与传统的HTTP协议不同,WebSocket协议一旦建立连接,就可以避免反复的握手和头部...
总的来说,这个“html页面测试websocket”项目为我们提供了一个简单的WebSocket客户端示例,展示了如何在HTML和JavaScript中使用WebSocket API与服务器进行双向通信。开发者可以基于这个基础,扩展出更复杂的应用,...
根据提供的文件信息,标题和描述中提到的知识点是关于HTML5和WebSocket,接下来将详细解释这两个知识点。 HTML5是一种网页制作技术,是HTML的第五次重大修订。它是万维网的核心语言、标准通用标记语言下的一个应用...
本工程为MyEclipse javaWeb工程,用于展示如何使用 HTML5 webSocket API实现即时通讯的功能。 本工程编码方式:UTF-8 功能说明: 1、本功能支持多人聊天,类似于http://www.htkaoyan.com/网站中的在线自询; 2、...
WebSocket_jar包是Java开发中用于实现WebSocket协议的库,它为开发者提供了在Web应用程序中创建持久连接的能力,使得客户端和服务器之间可以进行双向通信。WebSocket协议是在HTTP的基础上设计的,旨在提供低延迟、高...
websocket.js,websocket页面使用javascript文件,定义.onopen、onmessage、onclose、onerror函数,html通过调用 openSocket(userId)函数,建立websocket链接;其中userId必须唯一; 3、后端代码 WebSocketServer....