Golang:HTML页面和GO通信

huangapple go评论118阅读模式
英文:

Golang: html pages and GO communication

问题

除了模板之外,是否有其他方法可以在Go和HTML页面之间进行通信?可以使用类似postmessage的方式吗?

场景:使用Twitter Streaming API

使用Streaming API调用,根据可用的新内容进行更新;

希望将网页更新为最新内容,同时保留原始内容。

希望避免使用NaCl...因为它只适用于Chrome浏览器。

英文:

Is there a way other than templates to communicate between Go and html pages ? Using something like postmessages ?

Scenario ::--> Streaming Twitter Api

Streaming api call, updates with new content as and when available;

Want to update the web page with the latest content, keeping the original content as it is.

Want to avoid using NaCl... As it is only for chrome

答案1

得分: 1

你可以使用Websockets(WebSocket@Wikipedia)。

以下是两个实现:

golang.org/x/net/websocket

github.com/gorilla/websocket

这是一个详尽的其他Websocket包/实现的列表:

godoc.org websocket搜索

英文:

You can use websockets (WebSocket@Wikipedia).

Here are 2 implementations:

golang.org/x/net/websocket

github.com/gorilla/websocket

And here is an exhausting list of other websocket packages/implementations:

godoc.org websocket search

答案2

得分: 1

使用websocketsserver sent events将事件从服务器推送到浏览器客户端。

对于websockets,请使用gorilla/websocket包。也可以使用x/net/websocket包,但它的协议部分实现不适用于最新版本的Chrome

Server sent events非常简单,不需要真正的辅助包。请参考这个示例开始使用server sent events。

英文:

Use websockets or server sent events to push events from the server to the browser client.

Use the gorilla/websocket package for websockets. The x/net/websocket package is also available, but it's partial implementation of the protocol does not work with recent versions of Chrome.

Server sent events are so simple that a helper package is not really needed. See this example to get started with server sent events.

答案3

得分: 1

这不是关于Go语言的问题。客户端即浏览器必须能够处理持久连接,所以这里没有什么新的东西。你可以使用以下技术:

  • 对于旧版浏览器,可以使用长轮询(Long-polling)。
  • 对于现代浏览器,可以使用Websockets。
  • 对于明天的技术(即不包括IE浏览器),可以使用服务器发送事件(Server-sent-events)。
  • 对于移动平台,可以使用Google和Apple提供的推送服务。

这些技术都可以在Go语言的服务器端轻松实现,没有什么复杂的地方。

英文:

It's not about Go. Client side i.e. browser must be capable to handle persistent connection. So nothing new here. You have

  • Long-polling for older browsers
  • Websockets for modern browsers
  • Server-sent-events for tomorrow (to say, excluding IE, them holds even
    now)
  • Push-services provided by Google and Apple for mobile platforms

Either technics can be easily implemented with Go on server side. Nothing tricky.

huangapple
  • 本文由 发表于 2015年1月28日 23:42:38
  • 转载请务必保留本文链接:https://go.coder-hub.com/28196391.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定